js中代码里面怎么用了两次setTimeout("startCount()",1000);

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

海枯_

2015-01-16 17:26

为什么要用两次呢 求大神的解答

写回答 关注

4回答

  • Fiona0126
    2015-01-16 17:35:13
    已采纳

    函数外面的目的是1s中后调用,你也可以直接写成startCount();函数里面的,固然是为了实现不断循环,递归调用自己~

    海枯_

    非常感谢!

    2015-01-16 22:41:53

    共 3 条回复 >

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

    代码就应该是这样,慕课课程里面的运行有时候不是太好,每次都是外面调试

  • 渊翼
    2015-01-16 23:08:58

    其实这样写才是合理的啦:

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

    因为,你是放到head里面,而 #count 这个 input在解析js时还没有渲染出来,所以你的代码是在1s才能执行,1s后那个input已经渲染出来了,不过以后千万不要这么写,正常来说应该是按我上面的代码写,然后把 js 放到input后面,必须是要先让 dom 加载出来,然后js 才能去操作它们~

  • 寸晓东不是万能的
    2015-01-16 20:34:52

    递归调用,不是用两次,是用无数次。。。

JavaScript进阶篇

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

468060 学习 · 21891 问题

查看课程

相似问题