为什么在script里面写startCount();没有用 在外面新加一个按钮绑定onclick事件才能触发调用startCount函数一次 继而进行内部调用

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

Demon丶Y

2016-07-12 10:46

startCount();

写回答 关注

7回答

  • 我是刘高兴
    2016-07-16 20:18:59
    function startCount() {
        document.getElementById('count').value=num;
        num=num+1;  
        setTimeout("startCount()",1000);
      }

    因为这里的setTimeout("startCount()",1000)是在函数内部,是函数的一部分,你不用onclick调用该函数的话是不起作用的(函数需调用才能执行,不然只是几行代码)。所以需要下边表单里的onclick来调用。

    当然,你把setTimeout("startCount()",1000)再放在函数的外边不需要onclick也会执行了,像下边这样:

    function startCount() {
        document.getElementById('count').value=num;
        num=num+1;  
        setTimeout("startCount()",1000);
      }
      setTimeout("startCount()",10000);


    我是刘高兴

    不知道你是否还有疑问,函数内部的setTimeout()是调用函数自身实现无数循环的,外边的setTimeout()是调用这个函数的

    2016-07-16 20:27:53

    共 1 条回复 >

  • 我要开发地图系统
    2016-07-16 15:50:59

    你好!

    你的本意是要每间隔一秒数字加1,以达到计时的效果;具体的做法就是每隔一秒执行一下函数。

    setTimeout();这个方法是在等到一段时间后执行一次函数,只执行一次;

    setInterval() ;这个方法每隔一段时间就执行一次函数,不断地执行;

        所以,setInterval() ;才符合你的要求;

    <script type="text/javascript">

      var num=0;

      function startCount() {

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

        num=num+1; 

      }

      setInterval("startCount()",1000);

    </script>


  • 李小子
    2016-07-16 15:42:48

    因为你js写在了id=”count“的输入框的前面,document.getElementById('count')返回是null   


    这是我复制的!

  • weibo_
    2016-07-16 10:14:27

    同问啊!

  • 慕姐9558663
    2016-07-15 12:16:03

    同问啊!

  • Demon丶Y
    2016-07-12 11:23:47

    http://img.mukewang.com/578462870001bf0205410431.jpg你在12行后面加个startCount();然后注释掉18行 试试   我这没有用

    大块吃肉18...

    如果是这样的话,我试过了不行的。在加载到startCount()时候就开始执行function startCount(){}但是document.getElementById("count")获取id的时候下面的body部分还没加载,会返回一个null,

    2016-08-13 11:00:09

    共 1 条回复 >

  • 慕粉3642568
    2016-07-12 11:04:32

    在script里面写startCount()肯定有用的,估计代码有问题,最好上截图

JavaScript进阶篇

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

468194 学习 · 21891 问题

查看课程

相似问题