事件兼容性处理

1.添加事件
一般来说有三种方式addEventListener、attachEvent、on

        addHandler: function(element,type,handler){  //添加事件
            if(element.addEventListener){
                element.addEventListener(type,handler,false);
            }else if(element.attachEvent){
                element.attachEvent("on"+type,handler);
            }else{
                element["on"+type]=handler;
            }
        },

attachEvent是IE特有的方法
现在使用on和addEventListener比较多
on 和其他两种不同的是 on事件只能绑定一个方法,多次绑定会被替换,其他的不会

2.获取event对象

event?event:window.event

3.获取target(当前html对象)

event.target||event.srcElement

4.阻止事件冒泡

if(event.preventDefault){
    event.preventDefault();
}else {
    event.returnValue=false;
}

5.移除事件
移除事件讲究比较多,如果你添加的事件方法不是命名方法,那么你很难直接移除该事件;
移除方法需要有指向方法的指针,匿名方法是没有玩意的

element.addEventListener("click",function(){

},false);

像这样写的就不要想着去移除了

6.获取相关元素

if(event.relatedTarget){
    return event.relatedTarget;
}else if(event.toElement){
    return event.toElement;
}else if(event.fromElement){
    return event.fromElement;
}else{
    return null;
}

使用场景还是比较少的

你可能感兴趣的:(事件兼容性处理)