課程
/前端開發
/JavaScript
/JavaScript進階篇
在setTimeout中,不斷點擊start會出現計數加速的情況,請問,如何避免這種情況,以及原理是什么?
2016-08-28
源自:JavaScript進階篇 8-6
正在回答
function startCount(){
? ? ? ? ? clearTimeout(i);
? ? num=num+1;
? ? document.getElementById('count').value=num;
? ? i=setTimeout("startCount()",1000)}
? ? setTimeout("startCount()",1000);
只要在函數中加入清理定時器就可以,
慕用5675268 提問者
慕粉3597558 回復 慕用5675268 提問者
這是我的代碼,思路就是讓點擊start后不運行計時器,所以通過設一個方法去判斷有沒有點擊過。
AcerYyzy
Geeker哞哞
點對應個stop
你每次點擊start就執行startCount()函數,里面的setTimeout("startCount()",1000);是每一秒就執行一次,你不斷點擊,計數是在1000ms結束后才計數?setTimeout就不斷累積,看上起就像加速了停不下來一樣。
舉報
本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界
1 回答點擊多次之后累加的速度回加快
2 回答關于setTimeout()多次點擊速度飆升問題!
4 回答多次點擊start問題
1 回答多次點擊按鈕問題
3 回答如何解決計時器中點擊一次增加1s問題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-09-13
function startCount(){
? ? ? ? ? clearTimeout(i);
? ? num=num+1;
? ? document.getElementById('count').value=num;
? ? i=setTimeout("startCount()",1000)}
? ? setTimeout("startCount()",1000);
只要在函數中加入清理定時器就可以,
2016-08-31
這是我的代碼,思路就是讓點擊start后不運行計時器,所以通過設一個方法去判斷有沒有點擊過。
2016-08-29
點對應個stop
2016-08-28
你每次點擊start就執行startCount()函數,里面的setTimeout("startCount()",1000);是每一秒就執行一次,你不斷點擊,計數是在1000ms結束后才計數?setTimeout就不斷累積,看上起就像加速了停不下來一樣。