问答详情
源自:8-5 计时器setTimeout()

settimeout

这自带的编译器是不是也有问题啊,前面那个setInterval/clearInterval   和现在的setTimeout ,都有问题,这个计数忽快忽慢的,

提问者:慕移动7500465 2016-01-04 20:54

个回答

  • 堂堂堂堂糖糖糖童鞋
    2016-01-04 22:03:36
    已采纳

    如果你只做一次点击的话是没有问题的,然而当你做了多次点击后,那么就会存在多个定时器,会造成多个函数被执行,num的值也会在1s内变化多次(与你的点击次数有关),解决这个问题的思路是清除原来的定时器!

    思路如下:

    <script type="text/javascript">
      var num=0;
      var t;
      function startCount() {
        if(t) {
            clearTimeout(t);
        }
        document.getElementById('count').value=num;
        num=num+1;
        console.log(num);
        t = setTimeout("startCount()",1000);
      }
      
    </script>

  • 产品经理不是经理
    2016-01-04 21:06:04

    换个地方测试