2 回答
TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊
secInterValId 改成全局變量,使得可以保存上一次的 setInterval 值。否則每次點(diǎn)擊同一個(gè)按鈕 secInterValId 都將被重置
以下偽代碼僅供參考
(function () {
var secInterValId = null
startBtn.addEventListener('click', () => {
secInterValId = setInterval(fn, 10)
})
pauseBtn.addEventListener('click', () => {
clearIntervalId(secInterValId)
})
}())
TA貢獻(xiàn)1712條經(jīng)驗(yàn) 獲得超3個(gè)贊
我給個(gè)另外的思路,直接加個(gè)狀態(tài)變量進(jìn)行控制就行了,比如說:
var paused = false,
timer = null;
function loop(){
timer = setTimeout(loop,10);
if(paused) return false;
//這里主代碼
}
//當(dāng)你需要暫停的時(shí)候,改變paused的值就行了,這當(dāng)你在一個(gè)計(jì)時(shí)器下,需要分開管理不同功能的狀態(tài)的時(shí)候很有用。如果確實(shí)需要銷毀計(jì)時(shí)器,再clear(timer)變量就行
添加回答
舉報(bào)
