$($('div').children()).animate({opacity:"0"},
function(){
$(this).remove();
$('div').append('new content');
}
);
新内容每次都会加倍,我怎样才能让回调函数只触发一次而不是每个孩子?
答案 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
});