如何停止这个jquery setInterval函数

时间:2017-03-19 23:15:25

标签: javascript jquery

我有一个计时器功能,当它低于1分钟时,调用此功能来闪烁某些文本。 (基于这个jsfiddle:http://jsfiddle.net/8yned9f9/5/

$(document).ready(function(){
                setInterval(function(){
                    $('.flash').toggleClass('active');
                }, 500);
            });

分钟到期后,我需要停止切换课程,并将.active关闭。我不确定该怎么做。

请记住,有一个必须继续运行的js window.setInterval计时器,只有jquery调用应该停止。

更新

根据这里的一些答案,我添加了一个变量,所以我可以调用clearInterval(flash)

flash = setInterval(function(){
                            $('.flash').toggleClass('active');
                        }, 500);

这可以阻止射击间隔。但它停在了错误的状态。有没有办法在停止间隔后删除.active类?

更新2,解决了快速搜索删除课程的问题。

document.getElementById("seconds").classList.remove("active");

6 个答案:

答案 0 :(得分:2)

您需要将间隔分配给变量,并使用变量通过clearInterval

来停止它
var variable = setInterval(examplefunction, 10000);

clearInterval(variable);

编辑:

要删除课程,您需要执行以下操作:

$("yourelement").removeClass( ".active" );

答案 1 :(得分:1)

setInterval函数返回区间ID ,以便在您要停止间隔功能的情况下使用。您可以使用id作为函数clearInterval的参数来停止它。

在你的例子中:

$(document).ready(function(){
    var intervalId = setInterval(function(){
        $('.flash').toggleClass('active');
    }, 500);
    // stop after 60 seconds
    setTimeOut(function() {
        clearInterval(intervalId);
    }, 60000)
});

setInterval函数属于window对象,与jquery无关。您可以找到有关setInterval here

的更多信息

答案 2 :(得分:0)

setInterval()返回一个id。将此id保存在某种全局变量中。

假设您将其保存到变量“interval”。然后,您可以通过调用clearInterval(interval)停止间隔。

答案 3 :(得分:0)

最简单的方法是在脚本中添加一个条件:

$(document).ready(function () {
  var count = 1;
  setInterval(function () {
    if (count < 120) {
      $('.flash').toggleClass('active');
      count++;
    }
  }, 500);
});

但是,我不清楚为什么如果它什么也不做的话你会希望setInterval继续。

答案 4 :(得分:0)

var variable = setInterval(examplefunction,10000);

clearInterval(可变);

答案 5 :(得分:0)

您可以在一分钟后设置另一个计时器来处理它,如下所示:

&#13;
&#13;
$(document).ready(function(){
  var id = setInterval(function(){
    $('.flash').toggleClass('active');
  }, 500);
  setTimeout(function () {
    clearInterval(id); // stop the setInterval
    $('.flash').addClass('active'); // make sure active is ON.
  }, 6000); // after 6 seconds (make this one minute if you want)
});
&#13;
.flash {color: red}
.flash.active {color: black}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="flash">Hello</div>
&#13;
&#13;
&#13;

为了便于说明,闪烁在6秒后停止。根据需要进行调整。