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

关于clearTimeout()的疑问

关于clearTimeout()的疑问

阳光雨下 2016-01-27 11:33:55
js进阶篇中8-6取消计时器clearTimeout()代码如下<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>计时器</title> </head> <script type="text/javascript">   var num=0;   var i;   function startCount(){     document.getElementById('count').value=num;     num=num+1;     i=setTimeout("startCount()",1000);   }   function stopCount(){     clearTimeout(i);   } </script> </head> <body>   <form>     <input type="text" id="count" />     <input type="button" value="Start" onclick="startCount()" />     <input type="button" value="Stop" onclick="stopCount()"  />   </form> </body> </html>点击多少次Start按钮,就要点击多少次Stop按钮才能停在计时器。我想问此时i值是怎么保存setTimeout()的id值,通过数组吗?假设是数组的话,clearTimeout(i)方法是用shift()删除数组i里的元素和splice()添加元素的?
查看完整描述

1 回答

?
pardon110

TA贡献1038条经验 获得超227个赞

注意setTimeout()产生的id值,全部保存到单一全局变量i中。所以在你写的这段代码中,点击多少次Start按钮,就要点击多少次Stop按钮才能停在计时器 的想法是错的。因为每次产生的settimeout()id值,都被覆盖了。所以无论按多少次start,一次stop就可以了

查看完整回答
反对 回复 2016-01-28
  • 阳光雨下
    阳光雨下
    不是我一个人这样啊,你可以去看下这个课程。。所有的同学评论都是这样的。我开始也是像你这样想得,试了代码,我整个人都不好了,所以才提问的。
  • 1 回答
  • 0 关注
  • 2253 浏览
慕课专栏
更多

添加回答

举报

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