javascript - 在 Javascript/jQuery 中重新启动 setInterval()(没有 clearInterval)

标签 javascript jquery timer setinterval eventtrigger

我正在研究使用 jQuery 构建的 ui 选项卡。除一个问题外,一切正常——我做了一个 setInterval,它运行一个执行触发器(“点击”)的函数,以便它在 5000 毫秒后转到下一个选项卡。它很好地运行每个选项卡,问题是如果用户手动单击选项卡,setInterval 的计时器不会从 0 重新开始。例如,如果用户在 0 毫秒开始在 tab1 上并在 tab2 上单击2000 毫秒,setInterval 不会返回到 0,它会从 2000 开始运行到 5000 毫秒,然后转到 tab3。我明白为什么会这样,我只是想知道是否有一种方法可以重新启动 setInterval 计时,而不必执行 clearInterval() 并创建一个全新的 setInterval()。任何见解将不胜感激。

更新

感谢您的回复 - 我试图避免使用 clearInterval 的原因是因为我遇到了如何以 clearInterval 完全停止 setInterval 的方式编写代码的问题。代码设置为在用户单击选项卡时进行跟踪。问题是自动更改功能利用触发器('点击'),因此它运行我在选项卡自动更改时也编写的 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 设置的计时器。

关于javascript - 在 Javascript/jQuery 中重新启动 setInterval()(没有 clearInterval),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4328148/

相关文章:

java - 从单独的方法关闭计时器

timer - 如何在 Elixir 或 Erlang 中使用 GenServer 实现可重置的倒数计时器

javascript - 如何在 Angulars 文档上下文中使用 protractor.js?

php - 我可以保存序列化的表单数据吗?

javascript - jquery为div添加背景

jquery - 通过 jquery 将 div 从其他 div 后面滑动

javascript - 使用 Mongoose 通过传递选项 JSON 来过滤数据 DB 级别

javascript - ElasticSearch 查询过滤掉某些摄像头

javascript - 如何使用 JQuery 将鼠标悬停在元素上 x 秒时触发点击?

c++ - 用于使用易于选择的文本和时序编写 C++ 代码的环境/IDE?