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

xiaoxiao2021-02-28  130

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; } } }
转载请注明原文地址: https://www.6miu.com/read-28084.html

最新回复(0)