跨浏览器事件封装

Posted jasonduanmu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跨浏览器事件封装相关的知识,希望对你有一定的参考价值。

var EventUtil = {
        // 添加事件处理程序
        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;
            }
        },
        // 删除事件处理程序
        removeHandler: function (element,type,handler) {
            if (element.removeEventListener){
                element.removeEventListener(type,handler,false);
            } else if (element.detachEvent) {
                element.detachEvent("on"+type,handler);
            } else {
                element["on"+type] = null;
            }
        },
        // 获取事件对象
        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;
            }
        }
    };

 

以上是关于跨浏览器事件封装的主要内容,如果未能解决你的问题,请参考以下文章

跨浏览器事件封装

跨浏览器事件对象封装

跨浏览器的事件对象-------EventUtil 中的方法及用法

JS-DOM2级事件对象跨浏览器处理(已封装)

009天之跨浏览器的事件处理程序

封装常用的Javascript跨浏览器方法