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

为什么要两句setTimeout("startCount()",1000);

为什么要两句setTimeout("startCount()",1000);才能执行

提问者:human123 2015-07-24 16:50

个回答

  • arlenhui
    2015-07-24 19:42:04
    已采纳

    回复 human123:外面那个延迟一秒执行startCount函数,里面那个循环执行startCount函数。外面那个主要作用就是等dom节点都加载完才执行函数。写成以下形式同样可以实现效果。


    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>计时器</title>
    </head>
    <body>
    <form>
    <input type="text" id="count" />
    </form>
    <script type="text/javascript">
      var num=0;
      function startCount() {
        document.getElementById('count').value=num;
        num=num+1;
        setTimeout("startCount()",1000);
      }
      startCount();
    </script>
    </body>
    </html>


  • 鲜衣
    2015-09-07 23:00:51

    其实应该像讲解中的例子一样,应该设置一个按钮去启动函数,这样就比较好理解了。第二个setTimeout("startCount()",1000)相当于就是这个启动按钮,有了这句话就不用启动按钮了。有错误的地方还望指正!!

    <!DOCTYPE HTML>
    <html>
    <head>
    <script type="text/javascript">
    var num=0;
    function numCount(){
     document.getElementById('txt').value=num;
     num=num+1;
     setTimeout("numCount()",1000);
     }
    </script>
    </head>
    <body>
    <form>
    <input type="text" id="txt" />
    <input type="button" value="Start" onClick="numCount()" />
    </form>
    </body>
    </html>


  • arlenhui
    2015-07-24 18:43:03

    函数里面的没有调用函数的时候是不会启动的