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

最新edge和firefox测试

<!DOCTYPE html>
<html>
<head>
 <meta charset="UTF-8">
 <script type="text/javascript" src="js/script.js"></script>
 <title>Event测试</title>
</head>
<body>
 <div id="box">
  <input type="button" value="按钮1" id="btn" onclick="showMes()">
  <input type="button" value="按钮2" id="btn2">
  <input type="button" value="按钮3" id="btn3">
  <a href="www.baidu.com" id="go">跳转</a>
 </div>
 <script type="text/javascript">
  function showMes(event){
   alert("html事件处理程序");
  }
  function showBox(){
   alert("盒子Box"); 
  }
  function showM(){
   alert("DOM2级事件处理程序");
  }
  var btn2=document.getElementById('btn2');
  var btn3=document.getElementById('btn3');
  var box=document.getElementById('box');
  //DOM0级事件处理程序
  box.onclick=showBox();
  btn2.onclick=function(){
   alert("DOM0级事件处理程序");
  }//不起作用
  btn2.onclick=function(){
   alert("DOM0级多个事件处理程序");
  }//起作用
 // btn2.onclick=null; //去掉事件
  //DOM2级事件处理程序
  /*
   DOM2级可以添加多个事件处理程序
  */
  btn3.addEventListener('click',showM,false);
  btn3.addEventListener('click',function(){alert(this.value)},false);
 // btn3.removeEventListener('click',showM,false); //删除事件
 </script>
</body>
</html>

DOM0级事件不能添加多个事件处理!如代码,后一个起作用!

最新浏览器都支持addEventListener();

问:为何刷新页面直接执行function showB(){};

而不是冒泡执行?????

正在回答

2 回答

去掉DOM0级事件的box.onclick

在DOM2级事件中添加box.addEventListener('click',showbox,false);可以正常的冒泡!!

猜测应该是html,DOM0级和DOM2级事件的执行顺序不同。。。优先级不同。。。


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

冒泡执行即点击按钮,先执行按钮事件,在执行按钮所在的<div>的点击事件??而刷新页面直接执行了<div>点击事件??

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

举报

0/150
提交
取消

最新edge和firefox测试

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