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