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

为什么触发事件要放在按钮后面,而不能放在前面?如下放置无效。

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title></title>
  <script type="text/javascript" src="js/jquery-1.12.2.min.js" ></script>
  <script>
  $("#but").bind("click",function(){
   $("#tip").html("dfdfdf");
  })
 </script>

 </head>
 
 <body>
  <div id="tip"></div>
  <div>
  <input id="but" type="button" value="dd"></div>
  
 </body>
</html>

正在回答

1 回答

因为浏览器需要先加载dom,加载后从上往下执行,你的input在js的下面,会出现先执行js,在js找不到这个元素导致执行失败或者空白的结果

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

jack_one_on 提问者

非常感谢!
2016-04-27 回复 有任何疑惑可以回复我~
#2

浅陌洛城

我还是有点不太明白。先加载dom,那input元素不是在这期间已经被加载了么- -然后才开始执行js的么?
2016-05-31 回复 有任何疑惑可以回复我~
#3

一只特立独行的doge 回复 浅陌洛城

题主这个没有先加载dom,将jq代码用$(document).ready(function(){。。code。。})包裹起来才是表示dom加载完之后在调用jq,就和windo.onload=function(){...}一样啊。
2016-06-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
jQuery基础课程
  • 参与学习       154768    人
  • 解答问题       7184    个

加入课程学习,有效提高前端开发速度

进入课程

为什么触发事件要放在按钮后面,而不能放在前面?如下放置无效。

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