2
我有以下的jQuery代码:
$content.each(function(i) {
$body = $(this);
$(this).find('div.field-content')
.animate(
{
'top': 0
},
{
duration: 500,
complete: function() {
$(this).css('top', 0);
setBodyGradient($body);
}
}
);
});
在我的情况$content
有5个项目。问题似乎是,在最后一次迭代中,$content.eq(0)
的动画完成回调尚未触发,并且当它发生时,最新版本的$body
发送到setBodyGradient
5次,而不是$body
的版本回调已创建。
我应该说我在Drupal上运行JQuery 1.4.4,所以也许这是在最新的JQuery中修复的错误还是它的一个特性?
我知道我可以通过使用$content.eq(i)
而不是避开它,不过我很好奇,想知道这是否是设计或错误行为,什么推荐的方法是什么?我是否应该始终使用$content.eq(i)
?
哦,是的,谢谢有道理,它总是基本的东西,让我:) – DanH 2012-08-09 13:04:17
我不会说这是基本的东西,但很高兴我可以帮助。看看http://stackoverflow.com/questions/500431/javascript-variable-scope更好的理解。 – 2012-08-09 13:10:31