2013-07-18 133 views
0

我有这段代码,它运行一次然后停止。我希望它每十秒运行一次,我知道setinterval会循环代码,但由于某种原因,它不工作?循环jquery动画

<script> 
    $(document).ready(setInterval(function(){ 
     $("#club_color1 a").animate({color: '#000000'}, 1000); 
     $("#club_color2 a").animate({color: '#000000'}, 1000); 
     $("#club_color1 a").animate({color: '#FFFFFF'}, 1000); 
     $("#club_color2 a").animate({color: '#FFFFFF'}, 1000); 
    }),10000); 
</script> 
+0

您可以使用普通的JQuery的动画没有颜色。你应该使用额外的插件,如http://www.bitstorm.org/jquery/color-animation/ – RMK

+0

我和上面的代码工作,但它只运行一次。 – user1155594

+0

好的;只是要确定。请参阅下面的答案。 – RMK

回答

6

我认为最后一行必须

},10000)); 
0

使用回拨功能。以便它一个接一个地执行。

$(document).ready(setInterval(function(){ 
    $("#club_color1 a").animate({color: '#000000'}, 1000,function() { 
     $("#club_color2 a").animate({color: '#000000'}, 1000,function() { 
       $("#club_color1 a").animate({color: '#FFFFFF'}, 1000,function() { 
        $("#club_color2 a").animate({color: '#FFFFFF'}, 1000); 
       }); 
     }); 
    }); 
},1000); 
+1

好吧,这是真的有帮助,举一些例子 – jycr753

0

我注意到一两件事:

你忘了$.ready()的匿名功能,从而做到这一点:

<script> 
    $(document).ready(function() 
     setInterval(function(){ 
      $("#club_color1 a").animate({color: '#000000'}, 1000); 
      $("#club_color2 a").animate({color: '#000000'}, 1000); 
      $("#club_color1 a").animate({color: '#FFFFFF'}, 1000); 
      $("#club_color2 a").animate({color: '#FFFFFF'}, 1000); 
     },10000); 
    }); 
</script> 

您可以使其递归:

$(document.ready(function() { 
    animate(); 
}); 

function animate() { 
    $("#club_color1 a").animate({color: '#000000'}, 1000, animate); 
    $("#club_color2 a").animate({color: '#000000'}, 1000, animate); 
    $("#club_color1 a").animate({color: '#FFFFFF'}, 1000, animate); 
    $("#club_color2 a").animate({color: '#FFFFFF'}, 1000, animate); 
} 

在功能只需添加这些动画然后添加函数的名称作为每个$.animate()的最后一个参数,然后调用一次animate()功能时,该文档的准备。

+0

这将最终抛出一个错误,由于无限递归 – cfs

+0

@cfs我加了他的错误。 –

0

最简单的是:

function doMyAnimations() 
{ 
    $("#club_color1 a").animate({color: '#000000'}, 1000); 
    $("#club_color2 a").animate({color: '#000000'}, 1000); 
    $("#club_color1 a").animate({color: '#FFFFFF'}, 1000); 
    $("#club_color2 a").animate({color: '#FFFFFF'}, 1000); 
    setTimeout(doMyAnimations,10000); 
} 

然后调用它一次身体上的负荷:

setTimeout(doMyAnimations,10000);