Javascript setInterval多次,导致clearInterval失败的解决办法:
方法一
点击次数计数器方法:https://blog.csdn.net/qq_56430361/article/details/123509977
let btns=document.querySelectorAll('button');
let timer=0;
let num=0; //记录计时器开启的数目
btns[0].addEventListener('click',function () {
//单击事件触发num加1
num++;
//只有第一次点击能触发定时器
if(num===1) {
timer = setInterval(function () {
console.log('定时器调用!!!')
}, 1000);
}
})
btns[1].addEventListener('click',function () {
clearInterval(timer);
num=0; //关闭定时器后定时器数量清0
})
方法二
这个更简单。 每次setInterval之前,先clearInterval,这个方法没有方法一
优雅
var si = 0;
function start(){
clearInterval(si);
si = setInterval(function(){displayTime()}, 1000);
}