Javascript 当每个循环结束时做些什么

Javascript 当每个循环结束时做些什么,javascript,jquery,each,Javascript,Jquery,Each,我有一个简单的循环,如下所示: var delay = 0; $('.triggers a').each(function(){ $(this).delay(delay).animate({ opacity:1 },400); delay += 50; }); 我想在每个循环结束后做一些代码,这可行吗 我该怎么做呢?是的,如果您想在循环之后运行某个程序 var delay = 0; $('.triggers a').each(function(){

我有一个简单的循环,如下所示:

 var delay = 0;
$('.triggers a').each(function(){ 
    $(this).delay(delay).animate({
        opacity:1
    },400);
    delay += 50;
});
我想在每个循环结束后做一些代码,这可行吗


我该怎么做呢?

是的,如果您想在循环之后运行某个程序

var delay = 0;
$('.triggers a').each(function(){ 
  $(this).delay(delay).animate({
    opacity:1
  },400);
  delay += 50;
});
// more code here
但如果要在动画计时器之后执行某些操作,则可以执行以下操作:

var delay = 0;
$('.triggers a').each(function(){ 
  $(this).delay(delay).animate({
    opacity:1
  },400, function(){
    // more code here
  });
  delay += 50;
});
  • 阅读更多关于

您可以通过跟踪有多少链接正在设置动画以及有多少链接已设置动画来实现此目的:

var delay = 0, links = 0;
$(".triggers a").each(function() {
    $(this).delay(delay).animate({opacity:1},400,function() {
        links--;
        if( links == 0) {doSomething();}
    });
    links++;
    delay += 50;
});
此技术对于预加载程序(尤其是图像预渲染器)也很有用,在预加载程序中,在触发“下一步要做什么”功能之前,您可以计算有多少图像以及有多少图像触发了其
onload
事件


这应该行得通。您可以在那里调用函数,它将在each完成后启动。

您不能在.each()关闭之前添加代码吗?doDo你的意思是“当你完成每个循环”还是“当每个循环触发的最后一个动画完成”?
var delay = 0;
var length = $('.triggers a').length;
$('.triggers a').each(function(i){
    $(this).delay(delay).animate({
        opacity:1
    },400);
    delay += 50;
    if(length == i+1){ alert('Hello') }
});