【发布时间】:2012-02-06 06:32:42
【问题描述】:
如果您选择一个类或元素集合以使用 jQuery 进行动画处理:
$('.myElems').animate({....});
然后还使用回调函数,你最终会得到很多不必要的animate() 调用。
var i=1;
$('.myElems').animate({width:'200px'}, 200, function(){
//do something else
$('#someOtherElem').animate({opacity:'1'}, 300, function(){
if (i>1) console.log('the '+i+'-th waste of resources just finished wasting your resources');
i++;
});
});
可以说这只是糟糕的代码和/或设计 - 但有什么我可以做的,既避免有许多 animate() 调用,其中只有一个使用回调,并且有大量不必要的回调执行和搞砸我的代码/预期行为?
理想情况下,我只能编写一个只运行一次的“一次性”回调 - 否则也许有一种有效的方法来测试是否已经被 jQuery 动画化了?
示例:http://jsfiddle.net/uzSE6/(警告 - 这将显示大量警报框)。
【问题讨论】:
-
在文件范围内或
animate()可访问的某个地方定义一个标志变量。在$("#someOtherElem').animate()调用之前检查它并将其设置在它的主体中,以便下次不会调用$("#someOtherElem').animate()。
标签: jquery jquery-animate jquery-callback