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

这个代码没有错呀,就是一个简单的按钮,错哪里了~~~~求大神解惑

这个代码没有错呀,就是一个简单的按钮,错哪里了~~~~求大神解惑

hcl哦了 2016-02-28 23:38:38
<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>返回值函数</title><script type="text/javascript">  var x=document.getElementById("box")    x.onclick=function(){     alert('box')    }  var y=document.getElementById("btn")    y.onclick=function(){      alert('btn')      }</script></head><body><div id="box">    <input type="button" value="ddd" id="btn"></div></body></html>
查看完整描述

4 回答

已采纳
?
Caballarii

TA贡献1123条经验 获得超629个赞

把script整体放到</body>之前就行,你在document.getElementById的时候html还没加载,自然绑不上事件

查看完整回答
3 反对 回复 2016-02-29
  • hcl哦了
    hcl哦了
    还是不行~~我把他放在body里面,</body>之前都不行
  • 云备胎
    云备胎
    冒泡了。你点击btn,实际上也触发了点击box的事件。建议你以关键字“js 阻止冒泡”来搜索一下。
?
ruibin

TA贡献358条经验 获得超213个赞

执行js代码的时候,页面还没有渲染,此时不能找到对应的节点。事件冒泡机制不熟悉,建议多理解下。我修改了你写得代码,应该达到了你想要的目的。

<!DOCTYPE HTML>
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <title>返回值函数</title>
   <style>
       div {
           width: 200px;
           height: 200px;
           border: 1px solid red;
       }
   </style>
   <script type="text/javascript">
       window.onload = function() {
           var x = document.getElementById("box");
           x.onclick = function() {
               alert('box');
           }
           var y = document.getElementById("btn");
           y.onclick = function(e) {
               e.stopPropagation();
               alert('btn');
           }
       }
   </script>
</head>
<body>
<div id="box">
   <input type="button" value="ddd" id="btn">
</div>
</body>
</html>

查看完整回答
1 反对 回复 2016-02-29
?
ruibin

TA贡献358条经验 获得超213个赞

执行js代码的时候,页面还没有渲染,此时不能找到对应的节点。事件冒泡机制不熟悉,建议多理解下。我修改了你写得代码,应该达到了你想要的目的。

<!DOCTYPE HTML>
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <title>返回值函数</title>
   <style>
       div {
           width: 200px;
           height: 200px;
           border: 1px solid red;
       }
   </style>
   <script type="text/javascript">
       window.onload = function() {
           var x = document.getElementById("box");
           x.onclick = function() {
               alert('box');
           }
           var y = document.getElementById("btn");
           y.onclick = function(e) {
               e.stopPropagation();
               alert('btn');
           }
       }
   </script>
</head>
<body>
<div id="box">
   <input type="button" value="ddd" id="btn">
</div>
</body>
</html>

查看完整回答
1 反对 回复 2016-02-29
  • ruibin
    ruibin
    我也不知道为什么发了两遍,这个验证码有bug啊。
?
IT菜_鸟

TA贡献1条经验 获得超0个赞

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>地方</title>

<script type="text/javascript">

window.onload=function(){

  var x=document.getElementById("box");

    x.onclick=function(){

     alert('box');

    }

  var y=document.getElementById("btn");

    y.onclick=function(){

      alert('btn');

      }

 }

</script>

</head>

<body>


<div id="box">

    <input type="button" value="ddd" id="btn">

</div>

</body>

</html>


查看完整回答
反对 回复 2016-03-01
  • 4 回答
  • 0 关注
  • 1752 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信