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

来源:8-6 取消计时器clearTimeout()

BLre

2016-11-10 18:32

<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回答

  • stone310
    2016-11-11 07:19:28
    已采纳

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

    BLre

    非常感谢!

    2016-11-12 10:56:45

    共 1 条回复 >

  • BLre
    2016-11-10 22:20:25

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

  • 慕粉3442477
    2016-11-10 19:52:19

    i=setTimeout(timedCount,1000);

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

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468060 学习 · 21891 问题

查看课程

相似问题