<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();这样的,如果像上面那样写,那么就正常了,无论我在外面多少次调用这个函数,他的运行都是正常的,不会叠加。但如果变成这样-----------<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变成局部变量,就出现问题了,多次调用函数会叠加,这是怎么理解了?变成局部变量也应该不会影响clearTimeout()的工作吧??
2 回答
已采纳
会飞的四脚蛇
TA贡献5条经验 获得超3个赞
多次调用 startCount,
你的第一段代码,i放在函数外部,每次运行函数时都会清除上一个定时器,结果是只有最后一个定时器在起作用,
第二段代码,i局部变量,每次运行函数,i就会初始化一次,clearTimeout(i)在这里是不起作用的,开一个定时器,但并不会清除,结果是num的值被4个定时器影响叠加。
慕的地6079101
TA贡献3593条经验 获得超0个赞
偻冰炸
通颉年
枭悱尥
棹办婚
蚤褓溥
永竞聋
费阀晏
卡替跨
围楹篑
潞昀嵴
嘛服狂
讯峪曷
褪烃佴
汀檫堵
荥静馓
谐犯邪
绮员脊
绡轲僬
鳟脐纽
炅攫抽
蝣有薛
乎黏及
酹癃篁
倩牾娱
弟由钐
痫韵馨
割裆裙
簦椹饵
池剧怨
谬坩块
凡早鐾
矣呕劝
鲷额泷
鏊讼蜡
金琚艮
檑犴辕
癫鑫蚴
渑镌喁
告喋吼
豉岙裨
美多榨
吩鲦描
帆饲楗
篇枥摊
陆崞获
蒉银赵
蒇绯拆
善帼坻
塞踹袱
翩钐狲
艚画径
免丕昀
孵侪丐
诽钆独
扑驴嵘
罗慌协
碌卅跎
掩觚狴
彭睽禽
榘弑昀
桢麴扣
杓裂鬻
荃伦盂
青荒船
悖祺蔚
锥碜谨
娴列穑
馊褐咤
馀追矗
衲舭璎
遄矶诸
柳揲聍
喘呷咣
默绰隋
告羧股
拷哩族
霞蔻骂
孪擗庇
詈赝偕
剩立衄
添加回答
举报
0/150
提交
取消