在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();

然后将仅带有回调的fadeOut添加到It
$('.someElements:last').fadeOut(fast, function (){
   // do something, it's the end of the world
};

09-25 16:44