课程
/前端开发
/JavaScript
/JavaScript进阶篇
在setTimeout中,不断点击start会出现计数加速的情况,请问,如何避免这种情况,以及原理是什么?
2016-08-28
源自:JavaScript进阶篇 8-6
正在回答
function startCount(){
clearTimeout(i);
num=num+1;
document.getElementById('count').value=num;
i=setTimeout("startCount()",1000)}
setTimeout("startCount()",1000);
只要在函数中加入清理定时器就可以,
慕用5675268 提问者
慕粉3597558 回复 慕用5675268 提问者
这是我的代码,思路就是让点击start后不运行计时器,所以通过设一个方法去判断有没有点击过。
AcerYyzy
Geeker哞哞
点对应个stop
你每次点击start就执行startCount()函数,里面的setTimeout("startCount()",1000);是每一秒就执行一次,你不断点击,计数是在1000ms结束后才计数 setTimeout就不断累积,看上起就像加速了停不下来一样。
举报
本课程从如何插入JS代码开始,带您进入网页动态交互世界
2 回答关于setTimeout()多次点击速度飙升问题!
4 回答多次点击start问题
1 回答多次点击按钮问题
3 回答如何解决计时器中点击一次增加1s问题
4 回答如何让button只能点击一次