0

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

<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>
4

4 回答 4

6

我认为最后一行需要是

},10000));
于 2013-07-18T14:02:25.897 回答
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);
于 2013-07-18T14:01:40.787 回答
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()在文档准备好时调用一次该函数。

于 2013-07-18T14:03:41.213 回答
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);
于 2013-07-18T14:12:37.853 回答