本人在做項目的時候遇到一個問題:定義一個定時器,通過監(jiān)聽某個頁面元素的onmouseover'onmouseout事件來清除定時器和重啟定時器,預(yù)想的效果是當(dāng)鼠標(biāo)移到元素上時,計時器關(guān)閉/暫停,當(dāng)移出時計時器重啟;代碼如下:代碼并不是很復(fù)雜,邏輯也比較明確,但是在運行時卻出現(xiàn)了問題,在百度上也無法找到一個明確的原因:當(dāng)打開頁面是,計時器正常運行,鼠標(biāo)移入[0]次的時候,計時器成功關(guān)閉,鼠標(biāo)移出[0],計時器成功重啟,接下來就是bug出現(xiàn)了,當(dāng)鼠標(biāo)再次移入的時候,計時器就無法停止,鼠標(biāo)移出,計時器依然重啟----然后,過程就不太美好了,計時器越來越快.沒有辦法,只能再從頭審查自己的代碼,推演自己的邏輯,問題出在鼠標(biāo)移入[1]次的那個節(jié)點上,也就是說,鼠標(biāo)移出[0]次重啟計時器后,clearInterval()并沒有成功清除計時器,各種調(diào)試,包括如下的改動:list.onmouseout=function(){ var runing=setInterval(fun1,1000);
};我的想法是重啟的計時器是不是應(yīng)該也要聲明一下,害怕clearInterval()無法辨認(rèn)計時器,但是實際效果,依然不理想,無法,只能求助各位大神能不吝賜教!謝謝
js計時器的清除與重啟發(fā)生錯誤
縹緲止盈
2018-09-03 13:10:09