问答详情
源自:8-5 计时器setTimeout()

为什么不能直接执行方法?一定要用点击事件?

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

  } 

     startCount();

</script>

</head> 

<body>

<form>

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

<!--<input type="button" value="start" onclick="startCount()"/>-->

</form>

</body>

</html> 





下面注释的是用button的onclick触发就可以了,但是为什么不能直接在scripts下面直接执行?

提问者:慕函数6103035 2018-10-30 23:46

个回答

  • Micheal_Gao
    2018-11-03 10:36:44
    已采纳

    https://img1.mukewang.com/5bdd098f0001b16907080433.jpg

    你执行startCount()的时候那个count的元素还没加载进来,JS就报错了,所以就不行了

  • 凡人北斗
    2018-11-26 19:40:10

    把<script></script>放在input的下面。  html是从上往下运行的

  • 慕函数6103035
    2018-10-31 21:59:59

    解决了  因为运行js代码的时候  下面的还没有初始化

  • isSmallFish
    2018-10-31 17:49:15

     function startCount() {}表示一个方法 而方法是不会主动运行的 除非你调用他

    你给input添加一个点击事件 点击以后调用此方法 这样就会运行此方法里所写的代码

  • weibo_墨鎏竹韵味无存_03318427
    2018-10-31 16:00:23

    举个栗子:

    function 吃饭 (){

       吃一碗饭;

    }

    onclick = “吃饭()”

    我们都是纯良无邪的孩子,只知道玩耍不知疲倦,而此刻已是正午吃饭时刻,你妈妈的一句“回家吃饭了”,你才想起来回家吃饭,此处onclick就相当于你妈妈喊你,响应了你妈妈的“onclick”喊你后你才吃了饭。