jquery动画回调调用一次而不是每个元素

时间:2013-06-29 16:12:09

标签: jquery callback

$($('div').children()).animate({opacity:"0"},
                        function(){
                                $(this).remove();
                                $('div').append('new content');
                            }
                        );

新内容每次都会加倍,我怎样才能让回调函数只触发一次而不是每个孩子?

1 个答案:

答案 0 :(得分:1)

使用.promise.done

来自文档:

  

.promise()方法返回动态生成的Promise,一旦绑定到已排队或未排队的集合的某个类型的所有操作都已结束,该Promise就会被解析。

     

默认情况下,type为“fx”,这意味着当所选元素的所有动画都已完成时,将解析返回的Promise。

所以用法是:

$(myElements).animate(...).promise().done(function() {
    // called only when _all_ of the animations on
    // "myElements" elements have completed
});