我要沖錢
2017-05-04 18:36:12
<script?type="text/javascript">
??var?num=0;
??var?i;
??function?startCount(){
????clearTimeout(i)
????document.getElementById('count').value=num;
????num=num+1;
????i=setTimeout("startCount()",1000)
???
??}
</script>主要問題是clearTimeout();這樣的,如果像上面那樣寫,那么就正常了,無論我在外面多少次調(diào)用這個(gè)函數(shù),他的運(yùn)行都是正常的,不會(huì)疊加。但如果變成這樣-----------<script type="text/javascript">? var num=0;? function startCount(){? ? clearTimeout(i)? ? document.getElementById('count').value=num;? ? num=num+1;? ? ?var i=setTimeout("startCount()",1000)? }</script>就是i變成局部變量,就出現(xiàn)問題了,多次調(diào)用函數(shù)會(huì)疊加,這是怎么理解了?變成局部變量也應(yīng)該不會(huì)影響clearTimeout()的工作吧??
2 回答
已采納

會(huì)飛的四腳蛇
TA貢獻(xiàn)5條經(jīng)驗(yàn) 獲得超3個(gè)贊
多次調(diào)用?startCount,
你的第一段代碼,i放在函數(shù)外部,每次運(yùn)行函數(shù)時(shí)都會(huì)清除上一個(gè)定時(shí)器,結(jié)果是只有最后一個(gè)定時(shí)器在起作用,
第二段代碼,i局部變量,每次運(yùn)行函數(shù),i就會(huì)初始化一次,clearTimeout(i)在這里是不起作用的,開一個(gè)定時(shí)器,但并不會(huì)清除,結(jié)果是num的值被4個(gè)定時(shí)器影響疊加。

慕的地6079101
TA貢獻(xiàn)3593條經(jīng)驗(yàn) 獲得超0個(gè)贊
僂冰炸
通頡年
梟悱尥
棹辦婚
蚤褓溥
永競(jìng)聾
費(fèi)閥晏
卡替跨
圍楹簣
潞昀嵴
嘛服狂
訊峪曷
褪烴佴
汀檫堵
滎靜馓
諧犯邪
綺員脊
綃軻僬
鱒臍紐
炅攫抽
蝣有薛
乎黏及
酹癃篁
倩牾娛
弟由釤
癇韻馨
割襠裙
簦椹餌
池劇怨
謬坩塊
凡早鐾
矣嘔勸
鯛額瀧
鏊訟蠟
金琚艮
檑犴轅
癲鑫蚴
澠鐫喁
告喋吼
豉岙裨
美多榨
吩鰷描
帆飼楗
篇櫪攤
陸崞獲
蕢銀趙
蕆緋拆
善幗坻
塞踹袱
翩釤猻
艚畫徑
免丕昀
孵儕丐
誹釓獨(dú)
撲驢嶸
羅慌協(xié)
碌卅跎
掩觚狴
彭睽禽
榘弒昀
楨麴扣
杓裂鬻
荃倫盂
青荒船
悖祺蔚
錐磣謹(jǐn)
嫻列穡
餿褐咤
馀追矗
衲舭瓔
遄磯諸
柳揲聹
喘呷咣
默綽隋
告羧股
拷哩族
霞蔻罵
孿擗庇
詈贗偕
剩立衄
添加回答
舉報(bào)
0/150
提交
取消