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

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

慕函数6103035

2018-10-30 23:46

<!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下面直接执行?

写回答 关注

5回答

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

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

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

    qq_慕娘3... 回复qq_慕斯卡...

    chrome浏览器就可以,你F12调出来调试

    2018-12-12 12:21:53

    共 2 条回复 >

  • 凡人北斗
    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添加一个点击事件 点击以后调用此方法 这样就会运行此方法里所写的代码

    慕函数610...

    额 我的意思是 为什么不能在定义方法后直接调用 <script type="text/javascript"> function start() { document.write("s"); } start(); </script> 像这个start方法就可以直接调用

    2018-10-31 20:22:20

    共 1 条回复 >

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

    举个栗子:

    function 吃饭 (){

       吃一碗饭;

    }

    onclick = “吃饭()”

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

    慕函数610...

    额 我的意思是 为什么不能在定义方法后直接调用 <script type="text/javascript"> function start() { document.write("s"); } start(); </script> 像这个start方法就可以直接调用

    2018-10-31 20:15:48

    共 1 条回复 >

JavaScript进阶篇

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

468061 学习 · 21891 问题

查看课程

相似问题