【发布时间】:2024-01-22 02:09:02
【问题描述】:
问题描述 (Fiddle):
我正在尝试从最初定义它们的事件之外的事件中清空/取消设置 this.rotated 和 this.locked 的值。我需要这些“锁定”变量对每只小猫来说都是唯一的,以防止随后发生.mousedown() 事件。
最终目标是能够连续点击三只小猫,让第四只大猫淡入,点击第四只猫,然后重置一切。
我对this的把握充其量是松散的;在大多数情况下可以很好地使用它,但严重缺乏对其范围和有用性的透彻理解。老实说,我什至不确定我的标题是否准确,但我想不出另一种说法。
代码:
var count = 0;
$('.cats').each(function(i){
$(this).mousedown(function() {
$(this).css({
'transform': 'rotate(45deg)',
'-webkit-transform': 'rotate(45deg)'
});
this.rotated = 1, this.locked;
if (this.rotated && !this.locked) {
this.locked = 1;
count++;
if (count > 2) {
$('#newCat').fadeIn();
}
}
});
});
$('#newCat').mousedown(function() {
$(this).fadeOut();
$('.cats').fadeOut(function() {
$(this).css({
'transform': 'rotate(0deg)',
'-webkit-transform': 'rotate(0deg)'
})
.fadeIn();
});
});
【问题讨论】:
-
this指的是当前对象引用。您的$(.cats)选择对象,this引用所选对象。您已经通过更改它们的.css()属性来使用它。更改您设置的变量是一回事
标签: javascript jquery variables scope this