跨浏览器的事件监听

示例:在控制台中返回被单击元素的nodeName属性值

document.addEventListener('click',function(e){
    console.log(e.target.nodeName);
},false);

升级版(跨浏览器):

function callback(evt){
    evt=evt||window.event;
    var target=evt.target||evt.srcElement;
    console.log(target.nodeName);
}   

if(document.addEventListener){
    document.addEventListener('click',callback,false);
}else if(document.attachEvent){ //oldIE
    document.attachEvent('onclick',callback);
}else{
    document.onclick=callback;
}

注解:

  • IE中没有addEventListener()方法,但有一个attachEvent()的等效法;
  • 对于单击事件来说attachEvent()相当于onclick();
  • 在IE时间对象中,没有用于反应触发目标元素的target属性,取而代之的是srcElement;
  • IE中总会有一个全局对象window.event会指向该事件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值