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

第二个setTimeout("startCount()",1000);的调用作用为什么不能用函数名来实现调用??

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

  }

    setTimeout("startCount()",1000);

</script>

</head>

<body>

<form>

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

</form>

</body>

</html>

第二个setTimeout("startCount()",1000);的作用我理解为调用函数用的,所以我用<input type="button" value="开始" onclick="startCount()" />替换也可以做,但是我为什么就

不能用function startCount()中的函数名startCount();来调用能??? 

正在回答

3 回答

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

</script>

</body>

</html>

把<script type="text/javascript">......</script>这部分内容放在表单</form> 后面就可以啦。。

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

qq_天羽_0 提问者

真的可以,但是你能解释一下吗?还不是很懂。
2016-03-30 回复 有任何疑惑可以回复我~
#2

菲尔活该 回复 qq_天羽_0 提问者

你原先的代码用startCount()不行,而用setTimeout("startCount()",1000)却可以,可能是因为用 “startCount();” 这句话调用函数的时候是立即跳到函数里,由于<form>...<form/>这部分内容还没被加载到,所以函数里的 getElementById('count') 自然是获取不到‘count’ , 所以计时器什么都没看到...
2016-03-30 回复 有任何疑惑可以回复我~
#3

qq_天羽_0 提问者 回复 菲尔活该

谢谢了
2016-03-31 回复 有任何疑惑可以回复我~

第二个setTimeout的作用我猜你是要让function自动加载,但两个计数同时做会使时间计数速度变快。

一般都是<body onload="startCount()">这种就能达到你要的目的。

或者,将第一个setTimeout整行去掉,将第二个setTimeout改为setInterval

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

qq_天羽_0 提问者

你讲的也对但是我问的重点是为什么不能用函数名 startCount();实现调用?能解释一下吗?O(∩_∩)O谢谢
2016-03-30 回复 有任何疑惑可以回复我~
#2

qq_流岚 回复 qq_天羽_0 提问者

最佳回答已经给出答案了,调用函数直接startCount()就可以,不需要setTimeout
2016-03-31 回复 有任何疑惑可以回复我~
#3

qq_天羽_0 提问者 回复 qq_流岚

同样谢了,你的答案也很有用。
2016-03-31 回复 有任何疑惑可以回复我~

setTimeout("startCount()",1000);是一个全局时间函数,没有点击事件自动执行。

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

举报

0/150
提交
取消

第二个setTimeout("startCount()",1000);的调用作用为什么不能用函数名来实现调用??

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