鍍金池/ 問答/HTML/ 如何在第二次點(diǎn)擊的時候清除上一次的setInterval?

如何在第二次點(diǎn)擊的時候清除上一次的setInterval?

用setInterval方法寫了一個循環(huán)計(jì)時器,使毫秒數(shù)每過一秒加1??僧?dāng)我第二次點(diǎn)擊按鈕執(zhí)行該函數(shù)的時候,上一次的計(jì)時還存在,導(dǎo)致毫秒的速度越來越快。如何在第二次點(diǎn)擊的時候清除上一次的計(jì)時器?

回答
編輯回答
熊出沒

setInterval容易造成頁面性能問題,cpu占內(nèi)存,我之前設(shè)置了2個計(jì)時器,一加載頁面一會就卡死。建議用settimeout,重復(fù)調(diào)用一次

2017年12月20日 19:52
編輯回答
拮據(jù)

給個IF條件 判斷是否存在這個定時器 存在的話就清除就是了

2017年3月14日 13:32
編輯回答
懶洋洋
     var timer = null;
        var i =0;
        var btn = document.getElementById('btn');
        btn.onclick = function(){
            if(timer){
                clearInterval(timer);
            }
                timer = setInterval(function(){
                    i++
                    console.log(i);
                },1000);
            
        }
2017年8月5日 11:30
編輯回答
愿如初
var cnt, handle 

$('#btn').click(function () {
  cnt = 0
  if (handle !== undefined) {
    clearInterval(handle)
  }
  handle = setInterval(function() {
    console.log(cnt++)
  }, 1000)
})

clearInterval 是重點(diǎn)

2017年9月1日 21:09
編輯回答
野橘
var interval, i = 0
?
function fn() {
   console.log(i ++ )
}
?
function clickBtn() {
   interval && clearInterval(interval)
   interval = setInterval(fn, 1000)
}
2017年10月5日 10:37