停止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()的方法。使用这些方法可以控制定时器执行的条件,从而达到我们想要的效果。