为什么要调用两次setTimeout()才能生效?

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

宝码

2022-07-04 14:28

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>计时器</title>

<script type="text/javascript">

  var num=0;

  function startCount() {

    document.getElementById('count').value=num;

    num=num+1;

     setTimeout("startCount('num')",1000);

  }

     setTimeout("startCount('num')",1000);

</script>

</head>

<body>

<form>

<input type="text" id="count" />

</form>

</body>

</html>


写回答 关注

3回答

  • qq_爱偷猫的鱼_0
    2022-09-29 18:44:18

    有3个问题:

    1、startCount不需要传参

    2、<script >标签要放到<body>最后,否则 document.getElementById('count').value 会报错

    3、js第一层(你的代码中的第二个setTimeout),这里应该是调用函数startCount(),类似示例里面的

    onClick="numCount()"


    修改代码如下:

    <!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('num')",1000);
         setTimeout("startCount()",1000);
    
      }
      startCount();
         //setTimeout("startCount('num')",1000);
    
    </script>
    </body>
    
    </html>


  • qq_慕仔4379292
    2022-09-13 14:16:22

    为什么我调一次就可以了

  • qq_慕田峪9512309
    2022-07-20 15:39:52

    第一次实现自身调用,创建一个循环计数器

    第二次是在设定时间后执行startCount()函数

JavaScript进阶篇

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

468192 学习 · 21891 问题

查看课程

相似问题