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

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

<!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 回答

https://img1.sycdn.imooc.com//5bdd098f0001b16907080433.jpg

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

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

qq_慕斯卡2381121

能说一下用的什么开发工具吗?
2018-12-10 回复 有任何疑惑可以回复我~
#2

qq_慕娘3014703 回复 qq_慕斯卡2381121

chrome浏览器就可以,你F12调出来调试
2018-12-12 回复 有任何疑惑可以回复我~

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

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

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

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

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

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

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

慕函数6103035 提问者

额 我的意思是 为什么不能在定义方法后直接调用 <script type="text/javascript"> function start() { document.write("s"); } start(); </script> 像这个start方法就可以直接调用
2018-10-31 回复 有任何疑惑可以回复我~

举个栗子:

function 吃饭 (){

   吃一碗饭;

}

onclick = “吃饭()”

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

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

慕函数6103035 提问者

额 我的意思是 为什么不能在定义方法后直接调用 <script type="text/javascript"> function start() { document.write("s"); } start(); </script> 像这个start方法就可以直接调用
2018-10-31 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

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