问答详情
源自:8-6 取消计时器clearTimeout()

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

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

提问者:BLre 2016-11-10 18:32

个回答

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

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

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

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

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

    i=setTimeout(timedCount,1000);

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