出现下图这种情况是因为上一次定时器还没结束,就被点击触发下一次,所以多次累计重复了。
因为问题出现在“多次初始化定时器”,那就要在每次初始化定时器之前先执行清除操作,保证只有一个定时器在执行,就不会出现这样的问题了。
例如:
var btn = document.querySelector('button');
var time;
btn.addEventListener('click', function() {
clearInterval(time); //清除之前的定时器
time = setInterval(function() { //初始化现在的定时器
console.log("hello");
}, 3000)
})
又如:
var checkClick = function() {
var clicktag = 0;
$("#").click(function() {
if (clicktag == 0) {
clicktag = 1;
setTimeout(function() {
clicktag = 0;
}, 500);
} else {
showMsgDialog("请勿频繁点击!");
}
});
};