在 jQuery 中设置动画时,仅当所有元素都完成动画处理而不是每个元素都触发回调的最佳实践是什么?
例如:
$('.someElements').fadeOut('fast', function() {
// dont do this until ALL elements are done fading
}
最佳答案
这可能是一个值得尝试的片段:
var numberOfElements = $('.someElements').length;
$('.someElements').fadeOut(fast, function() {
if( numberOfElements-- > 0 ) return;
alert('call the Fireman!');
});
警报只是您需要触发的结束回调的占位符。
编辑(另一种方式):
您还可以捕获所有元素,但不能捕获最后元素。
$('.someElements').not(.someElements:last).fadeOut();
然后添加一个仅带有回调的淡出效果
$('.someElements:last').fadeOut(fast, function (){
// do something, it's the end of the world
};
关于jquery - 制作动画时,如何仅在所有元素完成时才触发回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2897249/