在IE和FF中对同一DOM元素多次绑定同一事件,处理函数执行顺序

我们在往页面元素添加事件处理的时候,一般有如下二种方式:

  1. IE中 elm.attachEvent, FF系列elm.addEventLister
  2. 直接绑定elm.onclick

当我们往同一个元素多次注册事件处理函数时,顺序是很有意思的

< html >
< head >
  
< title > Event注册 </ title >
</ head >

< body >
   
< input  type ="button"  id ="bt"  value ="click"   />   
</ body >  

  
< script  type ="text/javascript" >
   
var  btn  =  document.getElementById( " bt " );
 
  bt.attachEvent(
" onclick " , function (){alert( " 1 " )});
  bt.attachEvent(
" onclick " , function (){alert( " 2 " )});
  bt.onclick 
=   function (){alert( " 0 " );}
  bt.attachEvent(
" onclick " , function (){alert( " 3 " )});          
  
  
// bt.onclick = function(){alert("4");}
  
  
/*
  bt.addEventListener("click",function(){alert("1")},false);
  bt.onclick = function(){alert("0");}
  bt.addEventListener("click",function(){alert("2")},false);
  bt.addEventListener("click",function(){alert("3")},false);
  
*/
  
</ script >

</ html >

这里没有加入浏览器判断,用注释方式执行

测试条件: 对同一DOM元素多次绑定同一事件,事件处理函数不同

结果: [IE - 0 3 2 1] [FF- 1 0 2 3]

结论: 在IE中,执行顺序是直接绑定先执行,attachEvent绑定后执行,而attachEvent的顺序是先绑定后执行。在FF中,直接添加事件与addEventLister一样效果,执行顺序为先绑定先执行。

 

转载于:https://www.cnblogs.com/AndrewZhang/archive/2011/08/23/2151016.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值