添加/移除事件、事件对象获取的兼容代码

Posted by CodingWithAlice on October 10, 2019

添加/移除事件、事件对象获取的兼容代码

跨浏览器的事件处理程序:

//新建一个EventUtil对象,作为处理浏览器差异的对象
var EventUtil={
    addHandler:function(element,type,false){
        if(element.addEventListener){
            element.addEventListener(type,handler,false);
        }else if(element.attachEvent){
            element.attachEvent("on"+type,handler);
        }else{
            element["on"+type]=handler;
        }
    },
    removeHandler:function(element,type,false){
        if(element.removeEventListener){
            element.removeEventListener(type,handler,false);
        }else if(element.detachEvent){
            element.detachEvent("on"+type,handler);
        }else{
            element["on"+type]=null;
        }
    },
    //返回对event对象的引用
    getEvent:function(event){
        return event?event:window.event;
    },
    //返回事件的目标
    getTarget:function(event){
        return event.target||event.srcElement;
    },
    //取消事件的默认行为
    preventDefault:function(event){
        if(event.preventDefault){
            event.preventDefault();
        }else{
            event.returnValue=false;
        }
    }
    //阻止事件流的继续冒泡
    stopPropagation:function(event){
        if(event.stopPropagation){
            event.stopPropagation();
        }else{
            event.cancelBubble=true;
        }
    }
}