为了账号安全,请及时绑定邮箱和手机立即绑定

settimeout

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

正在回答

3 回答

如果你只做一次点击的话是没有问题的,然而当你做了多次点击后,那么就会存在多个定时器,会造成多个函数被执行,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>
4 回复 有任何疑惑可以回复我~
#1

uwenhao2008

你好,我想问一下 t = setTimeout("startCount()",1000);//第11行的这个赋值语句以后,参数t的值是什么,难道是函数setTimeout("startCount()",1000);吗?
2016-01-05 回复 有任何疑惑可以回复我~
#2

堂堂堂堂糖糖糖童鞋 回复 uwenhao2008

返回的值为定时器执行的次数!
2016-01-05 回复 有任何疑惑可以回复我~
#3

慕移动7500465 提问者

非常感谢!
2016-01-11 回复 有任何疑惑可以回复我~

换个地方测试

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468045    人
  • 解答问题       21891    个

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

进入课程
意见反馈 帮助中心 APP下载
官方微信