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

为什么这样定义就不能取消定时器

<script type="text/javascript">
 var num=0,i;
 function timedCount(){
    document.getElementById('txt').value=num;
    num=num+1;
    setTimeout(timedCount,1000);
  }
    i=setTimeout(timedCount,1000);
  function stopCount(){
    clearTimeout(i);
  }
</script>

正在回答

3 回答

因为你clearTimeout(i),停止的是i定时器,而这里i定时器是外部只执行1次的定时器,外部的停不停都没什么意义,而内部循环调用的定时器没有赋给一个名字,因此将timedCount函数内部的定时器前面加上i=即可

1 回复 有任何疑惑可以回复我~
#1

BLre 提问者

非常感谢!
2016-11-12 回复 有任何疑惑可以回复我~

谢谢,但是还是有点不同,能具体讲一下吗?

0 回复 有任何疑惑可以回复我~

i=setTimeout(timedCount,1000);

这段写在function timedCount(){}外面,就是无穷循环了。。。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么这样定义就不能取消定时器

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信