2017-03-19 83 views
0

我有一个计时器功能,当它获得低于1分钟,调用此函数来闪烁某些文本。 (在此基础上的jsfiddle:http://jsfiddle.net/8yned9f9/5/如何停止这jquery setInterval函数

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

分钟结束后,我需要停止拨动类,并把它用。主动关闭。我不确定如何做到这一点。

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

UPDATE

基于一些答案在这里我添加了一个变量,这样我可以调用clearInterval(闪存)

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

即尽可能远离发射停止的时间间隔工作。但它停在了错误的状态。有没有办法在停止间隔后去除.active类?

更新2,解决快速搜索删除类。

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

jQuery没有'setInterval'函数。这是JavaScript。 – trincot

回答

2

您需要将您的间隔分配给一个变量,并使用该变量clearInterval停止它

var variable = setInterval(examplefunction, 10000); 

clearInterval(variable); 

编辑:

要删除的类,你需要这样做:

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

查看问题的更新。这工作,但停在错误的状态。我需要在停止间隔后关闭.active。 –

+0

回答了您的评论 –

0

的setInterval()返回的ID。将此ID保存在某种全局变量的某处。

假设您将其保存到变量“interval”。您可以通过拨打clearInterval(interval)来停止时间间隔。

0

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

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

但是,我不清楚你为什么会想setInterval的继续,如果什么都不做。

0

VAR变量=的setInterval(examplefunction,10000);

clearInterval(可变);

0

你可以在一分钟后设定另一个定时器来处理它,就像这样:

$(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) 
 
});
.flash {color: red} 
 
.flash.active {color: black}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="flash">Hello</div>

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

0

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。你可以找到更多的信息setIntervalhere