跨浏览器事件监听

事件标准化是从DOM Level2才完成的,导致IE9以前的版本与其他现代浏览器有差异。事件监听差异如下:


普通浏览器IE
添加监听事件addEventListener()attachEvent()
点击事件onclickattachEvent()
监听事件参数function(e){
e.target}
没有事件参数,但有一个全局对象:
window.event
触发事件目标元素targetsrcElement
事件传播捕捉法&&冒泡法只有冒泡法
阻止冒泡stopPropagation()将IE-Only属性canaleBubble设为true
阻止默认事件preventDefault()将IE-Only属性returnValue设为false
取消监听removeEventListener()detachEvent();

function callback(e){
  e=e||window.event;
  var targer=e.target||e.srcEvent;
  //console.log(target.nodeName);
}
if(document.addEventListener){                  //modern broswer
  document.addEventListener('click',callback,false);
}else if(document.attachEvent){                 //old IE
  document.attachEvent('onclick',callback);
}else{                                          //ancient
  document.οnclick=callback;
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值