为了账号安全,请及时绑定邮箱和手机立即绑定

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

startCount();

正在回答

7 回答

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);


2 回复 有任何疑惑可以回复我~
#1

我是刘高兴

不知道你是否还有疑问,函数内部的setTimeout()是调用函数自身实现无数循环的,外边的setTimeout()是调用这个函数的
2016-07-16 回复 有任何疑惑可以回复我~

你好!

你的本意是要每间隔一秒数字加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>


1 回复 有任何疑惑可以回复我~

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


这是我复制的!

0 回复 有任何疑惑可以回复我~

同问啊!

1 回复 有任何疑惑可以回复我~

同问啊!

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

大块吃肉188

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

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信