如何避免多次点击造成的加速问题?

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

慕用5675268

2016-08-28 11:18

在setTimeout中,不断点击start会出现计数加速的情况,请问,如何避免这种情况,以及原理是什么?

写回答 关注

4回答

  • 慕粉3597558
    2016-09-13 16:33:07

    function startCount(){

              clearTimeout(i);

        num=num+1;

        document.getElementById('count').value=num;

        i=setTimeout("startCount()",1000)}

        setTimeout("startCount()",1000);

    只要在函数中加入清理定时器就可以,

    慕粉3597... 回复慕用5675...

    对的,这样计时器就不会累加,加速

    2016-09-17 10:04:40

    共 2 条回复 >

  • weibo_是时候列队了_低调d_03482645
    2016-08-31 11:00:15

    http://img.mukewang.com/57c647ed00010fbb05210499.jpg

    这是我的代码,思路就是让点击start后不运行计时器,所以通过设一个方法去判断有没有点击过。

    Geeker...

    这个不错 ,但是按了stop再点start 计时器就不会运行了;所以还得在stopCount()里加入 u=0;

    2016-09-22 17:02:58

    共 2 条回复 >

  • __zz
    2016-08-29 17:35:08

    点对应个stop

    慕用5675...

    机灵抖的不错,哈哈

    2016-08-31 11:04:42

    共 1 条回复 >

  • 汉江怪人
    2016-08-28 11:46:54

    你每次点击start就执行startCount()函数,里面的setTimeout("startCount()",1000);是每一秒就执行一次,你不断点击,计数是在1000ms结束后才计数 setTimeout就不断累积,看上起就像加速了停不下来一样。

    慕用5675...

    恩,是这个道理,解决了第一个问题,那么,如何避免这种情况呢。

    2016-08-31 11:05:36

    共 1 条回复 >

JavaScript进阶篇

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

467385 学习 · 21877 问题

查看课程

相似问题