为什么这样数字不会增加

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

qq_万恶的数塔_0

2016-03-03 18:29

<!DOCTYPE HTML>

<html>

<head>

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

<title>计时器</title>

</head>

<script type="text/javascript">

  var num=0;

  function startCount() {

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

    num=num+1;

      setTimeout(startCount,1000);

  }

  startCount();//这样数字不会增加,如果把这行换成setTimeout(startCount,1000); 就可以了 ,为什么?

</script>

</head>

<body>

<form>

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

</form>

</body>

</html>



如果把

写回答 关注

3回答

  • Eason_Mar
    2016-03-06 21:27:12
    已采纳

    在函数startcount()后调用函数startcount()无效果的原因是script放在input前此时由于input还没加载所以函数停止调用,script放在input后即可生效

    qq_万恶的...

    非常感谢!

    2016-03-20 17:52:07

    共 1 条回复 >

  • Eason_Mar
    2016-03-06 21:32:32

    这样放到input后面:

    <!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" />

    </form>

    <script type="text/javascript">

      var num=0;

      function startCount() {

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

        num=num+1;

          setTimeout(startCount,1000);

      }

      startCount();//这样数字不会增加,如果把这行换成setTimeout(startCount,1000); 就可以了 ,为什么?

    </script>

    </body>

    </html>


  • 慕村4950944
    2016-03-03 19:23:05

    把script放在input后面就有用了,直接换成setTimeout其实并没有用到函数startCount

    qq_万恶的...

    怎么放在input后面,能写个代码吗,谢谢了

    2016-03-04 12:53:55

    共 1 条回复 >

JavaScript进阶篇

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

468060 学习 · 21891 问题

查看课程

相似问题