停止interval的几种方法
方法一:使用clearInterval()
使用setInterval()创建了一个定时器后,可以使用相应的清除函数来停止它,最常见的是使用clearInterval()函数。
例如:
var myVar = setInterval(myTimer, 1000);
function myTimer() {
var d = new Date();
var t = d.toLocaleTimeString();
document.getElementById(\"demo\").innerHTML = t;
}
function stopTimer() {
clearInterval(myVar);
}
在上面的代码中,使用setInterval()每秒更新一个div。stopTimer()函数使用了clearInterval()停止了这个定时器的执行。
方法二:使用setTimeout()
另一种停止setInterval()的方法是使用setTimeout(),在每次触发后调用自身。可以在每次调用setTimeout()之前检查是否需要停止执行。
例如:
function myTimer() {
var d = new Date();
var t = d.toLocaleTimeString();
document.getElementById(\"demo\").innerHTML = t;
myVar = setTimeout(myTimer, 1000);
}
function stopTimer() {
clearTimeout(myVar);
}
在上面的代码中,myTimer()函数使用setTimeout()每秒更新一个div。如果想要停止执行,可以使用clearTimeout()函数。
方法三:使用flag变量
设置一个标志变量为true或false,可以控制setInterval()执行的条件。
例如:
var flag = true;
setInterval(function() {
if (flag) {
var d = new Date();
var t = d.toLocaleTimeString();
console.log(t);
} else {
console.log(flag + ' stopped');
}
}, 1000);
setTimeout(function() {
flag = false;
}, 5000);
在这段代码中,setInterval()每秒更新一个console.log()。在5秒后,flag变量被设置为false,setTimeout()函数会打印出这个结果以停止执行。
总结
是一些停止setInterval()的方法。使用这些方法可以控制定时器执行的条件,从而达到我们想要的效果。