为了账号安全,请及时绑定邮箱和手机立即绑定

课程中setTimeout第三个示例程序中有疑问,求

课程中setTimeout第三个示例程序中有疑问,求

qq_伏特加_0 2016-09-16 11:33:11
<!DOCTYPE HTML> <html> <head> <script type="text/javascript"> var num=0; function numCount(){  document.getElementById('txt').value=num;  num=num+1;  setTimeout("numCount()",1000);  } </script> </head> <body> <form> <input type="text" id="txt" /> <input type="button" value="Start" onClick="numCount()" /> </form> </body> </html>为什么一直点击按钮时,计数会加快?
查看完整描述

4 回答

?
mov1er

TA贡献2条经验 获得超0个赞

函数内的代码改成

clearTimeout(timer)

document.getElementById('txt').value=num;
 num=num+1;
 var timer=setTimeout("numCount()",1000);

查看完整回答
反对 回复 2016-09-17
?
Sper_Et

TA贡献2条经验 获得超0个赞

因为你在每一次点击的时候都执行一次定时器,如果没有先清除的话就会不断叠加

查看完整回答
反对 回复 2016-09-17
?
慕婉清0260846

TA贡献2条经验 获得超3个赞

函数内第一行,用clearTimeout(timer); 把后面的定时器赋值给timer;记住一句话定时器用前一定要清,这是我们老师和我们说的.

查看完整回答
反对 回复 2016-09-17
  • qq_伏特加_0
    qq_伏特加_0
    我加了clearTimeout()方法,一直点击start的时候还是会变得很快,你试试?
?
摩诃迦叶

TA贡献146条经验 获得超54个赞

你一直点击按钮,那么开启的计时器不就一直增加么。  好多个计时器一其在执行num=num+1;
那么计数不就加快了么

查看完整回答
反对 回复 2016-09-16
  • 4 回答
  • 0 关注
  • 1560 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信