Jquery每隔x秒运行一次点击function

我有以下jQuery

 jQuery(function(){ jQuery('.link1').click(function(){ jQuery('.hide-div').hide(); jQuery('.toggle1').show(); jQuery('#arrow').css({top: '0px'}); }); jQuery('.link2').click(function(){ jQuery('.hide-div').hide(); jQuery('.toggle2').show(); jQuery('#arrow').css({top: '42px'}); }); jQuery('.link3').click(function(){ jQuery('.hide-div').hide(); jQuery('.toggle3').show(); jQuery('#arrow').css({top: '84px'}); }); jQuery('.link4').click(function(){ jQuery('.hide-div').hide(); jQuery('.toggle4').show(); jQuery('#arrow').css({top: '125px'}); }); jQuery('.link5').click(function(){ jQuery('.hide-div').hide(); jQuery('.toggle5').show(); jQuery('#arrow').css({top: '166px'}); }); jQuery('.link6').click(function(){ jQuery('.hide-div').hide(); jQuery('.toggle6').show(); jQuery('#arrow').css({top: '207px'}); }); }); jQuery(function(){ jQuery("#toggle-links ul > li > a").click(function(e){ e.preventDefault(); jQuery("#toggle-links ul > li > a").addClass("selected").not(this).removeClass("selected"); }); });  

并且需要添加一个函数,它将按顺序运行click1,link2,link3 …每3秒一次,直到它到达link6然后它将循环回到link1并且如果用户将鼠标hover在具有id的div上#holder函数将停止运行直到mouseout。 我有点难过这样做,有什么想法吗?

尝试:

 var interval = null; jQuery(function(){ interval = setInterval(callFunc, 3000); }); function callFunc(){ jQuery('.link1, .link2, .link3').trigger('click'); } 

任何时候您都可以通过调用来停止自动点击:

 clearInterval(interval); 

要按顺序调用它们,您可以像这样修改代码:

  jQuery('.link1').click(function(){ jQuery('.hide-div').hide(); jQuery('.toggle1').show(); jQuery('#arrow').css({top: '0px'}); // click link2 jQuery('.link2').trigger('click'); }); jQuery('.link2').click(function(){ jQuery('.hide-div').hide(); jQuery('.toggle2').show(); jQuery('#arrow').css({top: '42px'}); // click link3 jQuery('.link3').trigger('click'); }); 

这可能有所帮助:

  

我认为你最好的选择是重构代码,使事情更具编程性,更容易实现,然后使用jQuery插件进行计时。 下面是我使用jQuery Timers插件快速编写的演示。 您可能需要稍微修改它以满足您的需求,但我认为这大致是您正在寻找的。

HTML

  
toggle 1
toggle 2
toggle 3
toggle 4
toggle 5
toggle 6
Arrow
Pause Box

使用Javascript