我有以下 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)
吗?