3 回答

TA貢獻189條經(jīng)驗 獲得超236個贊
有相同超時時間的定時器,按添加的順序觸發(fā)
setTimeout方法被執(zhí)行后,會加入到JS的定時器執(zhí)行隊列中,JS會計算超時的時間的先后設(shè)置好觸發(fā)的時間點,當事件循環(huán)檢查到有定時器需要觸發(fā)就執(zhí)行對應(yīng)的函數(shù)
var?num=0; var?timeTag; function?numCount(){ ?clearTimeout(timeTag); ??document.getElementById('text').value=num; ??num=num+1; ? ??timeTag?=?setTimeout('numCount()',1000); }
感謝邀請,望采納!

TA貢獻16條經(jīng)驗 獲得超32個贊
再次點擊“開始”的時候就再次運行了numCount();這樣相當于再設(shè)定了定時器,這樣會疊加時間的,時間間隔就會變快,?應(yīng)該在setTimeout("numCount()",1000);先清除定時器clearTimeout(timer)(不管有沒有,清除掉先)然后進行定義這個定時器為var timer=setTimeout("numCount()",1000); 這樣就不會再次疊加了

TA貢獻24條經(jīng)驗 獲得超11個贊
定時器設(shè)置后沒有清除的緣故
在function numCount()開始的時候需要清除定時器
比如
var t;
function numCount(){
??clearTimeout(t);
? document.getElementById('text').value=num;
? num=num+1;
? t = setTimeout("numCount()",1000);
}

TA貢獻3593條經(jīng)驗 獲得超0個贊
添加回答
舉報