2 回答

TA貢獻1846條經(jīng)驗 獲得超7個贊
secInterValId 改成全局變量,使得可以保存上一次的 setInterval 值。否則每次點擊同一個按鈕 secInterValId 都將被重置
以下偽代碼僅供參考
(function () {
var secInterValId = null
startBtn.addEventListener('click', () => {
secInterValId = setInterval(fn, 10)
})
pauseBtn.addEventListener('click', () => {
clearIntervalId(secInterValId)
})
}())

TA貢獻1712條經(jīng)驗 獲得超3個贊
我給個另外的思路,直接加個狀態(tài)變量進行控制就行了,比如說:
var paused = false,
timer = null;
function loop(){
timer = setTimeout(loop,10);
if(paused) return false;
//這里主代碼
}
//當你需要暫停的時候,改變paused的值就行了,這當你在一個計時器下,需要分開管理不同功能的狀態(tài)的時候很有用。如果確實需要銷毀計時器,再clear(timer)變量就行
添加回答
舉報