两次setTimeout

来源:8-5 计时器setTimeout()

黄太_后

2017-03-08 13:37

为什么这里需要两次调用,而左边给的例子却只需要在函数体内写一次呢?

写回答 关注

3回答

  • 幸福是可积的
    2017-03-21 17:27:01

    html从上到下进行加载,因为在函数下面有setTimeout("startCount()",1000);

    在一秒后才执行startCount(),使得有足够的时间加载完整个html页面,所以函数里面的

    document.getElementById('count').value=num;这句代码才能够读取到有id=count的元素

    所以文本框中才会有数据

    使用startCount();直接调用时,html页面没能继续加载完,就要去执行startCount()函数了,所以里面的

    document.getElementById('count').value=num;这句代码是不能识别id=count的元素的

     

  • Johnny_Hsu
    2017-03-08 14:18:42

    忘记说了,例子里面是通过onClick调用计数器函数的。

  • Johnny_Hsu
    2017-03-08 14:17:32

    第一个是在函数体内的,并不会自动运行,所以要再调用一次,以保证计数器运行,否则文本框内是没有数据的。通过调用函数“startCount();”也是可以的,让计数器开始运行。

    黄太_后

    感谢回答。但是我刚才把它改成startCount()并没有效果啊,这是要取决于JS代码的位置吗?当我把JS代码写在body中之后,可以实现。

    2017-03-08 14:25:09

    共 1 条回复 >

JavaScript进阶篇

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

468190 学习 · 21891 问题

查看课程

相似问题