我正在使用jQuery构建的ui选项卡.一切都有效,除了一个问题 – 我做了一个setInterval,它运行一个触发器(“click”)的函数,以便在5000毫秒后进入下一个标签.它可以很好地运行每个选项卡,问题是如果用户手动单击选项卡,setInterval的计时器不会重新启动为0.例如,如果用户要在0毫秒的tab1上启动并点击tab2 at 2000毫秒,setInterval不会回到0,它将从2000开始并运行到5000毫秒,然后转到tab3.我理解为什么会发生这种情况,我只是想知道是否有办法重新启动setInterval时序而不必执行clearInterval()并创建一个全新的setInterval().任何见解将不胜感激.
更新
感谢回复 – 我试图避免使用clearInterval的原因是因为我遇到了如何以clearInterval完全停止setInterval的方式编写代码的问题.代码设置为在用户单击选项卡时进行跟踪.问题是自动更改功能使用触发器(‘click’),因此当选项卡自动更改时,它也运行我写的clearInterval函数.它本身运行起来相当不错,但是一旦用户开始单击选项卡,setInterval就会表现异常,并且会无法预测地切换选项卡.我怀疑发生的事情是几个setIntervals同时运行……这是代码(如果你还没有猜到,我在javascript / jquery上很新).我已经注释掉了它的功能,但它仍然没有按照我的意图运行(从第一篇文章开始).
// auto change tabs if( options.interval ) { function timerCom() { if( !$(".controller").hasClass('paused') ) { var i = $(".tab-current > a").attr("rel"); //alert(i); if( i == 3 ) {i = 0}; $container .find('a') .eq(i) .trigger('click'); } } //$("#promo-items > li > a").click(function () { //var timer; //if( timer != null ) {clearInterval(timer);} timer = setInterval(timerCom,options.interval); //}); }
解决方法
不,没有清除定时器就无法重启setInterval设置的定时器.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。