21

我知道如何等到动画完成

$('#element').animate(speed,function(){
//code here
});

并具有多个元素

$('#element1, #element2').promise().done(function(){
//code here
});

但是我如何等到页面上的所有元素都完成动画?我宁愿不只是把我正在等待的每一个元素都放进去。

4

2 回答 2

49

要选择当前正在动画的所有内容,只需执行$(":animated") http://api.jquery.com/animated-selector/

把它和你已经拥有的东西结合起来,它就是

$(":animated").promise().done(function() {
    //code here
});
于 2011-11-30T21:22:57.677 回答
10

Jeremy T 给出的答案很好 - 尽管基于他链接的 jquery 网站上的评论(http://api.jquery.com/animated-selector/),向每个元素添加一个类将是一个更快的解决方案在可能是动画的页面上,然后使用

    $('.animationclass').filter(':animated').promise().done(function() {
//Your function
});
于 2012-08-02T07:48:05.710 回答