问答详情
源自:8-5 计时器setTimeout()

两次setTimeout

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

提问者:黄太_后 2017-03-08 13:37

个回答

  • 幸福是可积的
    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();”也是可以的,让计数器开始运行。