支持匿名函数 事件处理对象

来源:互联网 发布:smartmontools linux 编辑:程序博客网 时间:2024/06/16 13:09
let hashHandle = {};var addEvent = (function () {    if(window.addEventListener)    {        return function (ele,type,fn,flag) {            ele.addEventListener(type,function () {                fn();                hashHandle[type] = hashHandle[type] || [];                hashHandle[type].push(arguments.callee);            },flag)        }    }    else if(window.attachEvent)    {        return function (ele,type,fn,flag) {            ele.attachEvent("on" + type,function () {               fn();               hashHandle[type] = hashHandle[type] || [];               hashHandle[type].push(arguments.callee);            });        }    }}());var rmEvent = (function () {    if(window.removeEventListener)    {        return function (ele,type) {            if(hashHandle[type])            {                let i=0;                for(i = 0;i<hashHandle[type].length;i++)                {                    ele.removeEventListener(type,hashHandle[type][i]);                }            }        }    }    else if(window.attachEvent)    {        return function (ele,type) {            if(hashHandle[type])            {                for(let i=0;i<hashHandle[type].length;i++)                {                    ele.detachEvent("on" + type,hashHandle[type][i]);                }            }        }    }}());var eventUtil = {    getEvent:function (ev) {        return ev ?ev : window.event;    },    getEventTarget:function (ev) {        return ev.target || ev.srcElement;    },    addHandler:function(element,type,handler){ //添加事件        if(element.addEventListener){            element.addEventListener(type,handler,false);  //使用DOM2级方法添加事件        }else if(element.attachEvent){                    //使用IE方法添加事件            element.attachEvent("on"+type,handler);        }else{            element["on"+type]=handler;          //使用DOM0级方法添加事件        }    },    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;        }    },    preventDefault: function (ev) {        if(ev.preventDefault)        {            ev.preventDefault();        }         else {            ev.returnValue = false;        }    },    stopPropagation:function (ev) {        if(ev.stopPropagation) {            ev.stopPropagation()        }        else {            ev.cancelBubble = true;        }    }}

原创粉丝点击