我有一个计时器功能,当它低于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");
答案 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)
您可以在一分钟后设置另一个计时器来处理它,如下所示:
$(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;
为了便于说明,闪烁在6秒后停止。根据需要进行调整。