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

为什么要设置两次setTimeout

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

正在回答

3 回答

制造一个死循环,就像香港电影绑匪勒索赎金的桥段,他叫你到地点A放下钱,但当你到了A之后,他又叫你到B,当你到了B之后,他又叫你到C,如此循环,那么就不会停止了,num就会一直往上加。

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

EricKok 提问者

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

试过了。setTimeout("startCount()",1000);换成startCount();的话,情况①:<script>放在<head>里面,没有反应;情况②:<script>放在<input>后面就可以运行了

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

我觉得楼上说的不对啊。

第二个setTimeout(),其实是用来启动函数的。

加入你不写这一句,那你可以在body里补充一个按钮,点击按钮,启动函数,也是一样的效果。

3 回复 有任何疑惑可以回复我~
#1

wangzhz

第二个为什么不能直接用startCount()呢
2016-07-28 回复 有任何疑惑可以回复我~
#2

l_yanlei 回复 wangzhz

讲下个人理解,不一定准确。 我觉得理论上,直接写startCount();是可以调用的,一般是在页面加载的时候,执行到这句,就调用了。但是,我们练习的时候,页面已经加载过了,这个时候想要去调用函数,你直接写startCount(),由于没有加载页面的过程,这句可能就没有执行。需要主动去调用才能调用成功,所以要不用个按钮,要不设个计时器,时间到了去调用。 我也不是很懂,没搜到什么答案。
2016-07-28 回复 有任何疑惑可以回复我~
#3

慕粉18764815087 回复 l_yanlei

我感觉你说的对0.0
2016-07-30 回复 有任何疑惑可以回复我~
#4

一只孤岛3228505 回复 l_yanlei

测试过发现!确实是这样!终于懂了!
2016-08-16 回复 有任何疑惑可以回复我~
#5

明明的明天12 回复 wangzhz

html是从上到下执行的,当你把startCount函数写在<head>里面时,下面的body内容还没有加载完,这时去执行startCount()函数里面的document.getElementById('count').value=num;这句代码是不能识别到id=count的元素的
2018-11-20 回复 有任何疑惑可以回复我~
查看2条回复

举报

0/150
提交
取消

为什么要设置两次setTimeout

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信