JavaScript高级程序设计之EventUtil

简单的通用事件方法

var EventUtil = {

    getEvent: function (e) {

        return e || window.event;

    },



    getTarget: function (e) {

        return e.target || e.srcElement;

    },



    preventDefault: function (e) {

        if (e && e.preventDefault) {

            e.preventDefault();

        } else {

            window.event.returnValue = false;

        }

    },



    stopPropagation: function (e) {

        if (e && e.stopPropagation) {

            e.stopPropagation();

        } else {

            e.cancelBubble = true;

        }

    },



    addHandler: function (ele, evType, fn, useCapture) {

        // 默认使用事件冒泡

        useCapture = useCapture || false;



        if (ele.addEventListener) {

            ele.addEventListener(evType, fn, useCapture);

        } else if (ele.attachEvent) {

            ele.attachEvent("on" + evType, function () {



                // fn中的this指向ele对象:ie的问题

                fn.call(ele);  

            });

        } else {

            ele["on" + evType] = fn;

        }

    },



    removeHandler: function (ele, evType, fn) {

        if (ele.removeEventListener) {

            ele.removeEventListener(evType, fn);

        } else if (ele.detachEvent) {

            ele.detachEvent("on" + evType, fn);

        } else {

            ele["on" + evType] = null;

        }

    },

    

    // keypess事件的charCode

    getCharCode: function (e) {

        if (typeof e.charCode === "number") {

            return e.charCode;

        } else {

            return e.keyCode; // ie8及之前版本

        }

    }

};

 

你可能感兴趣的:(JavaScript)