JavaScript 跨浏览器添加和删除事件

实现监听事件的添加和删除。直接上代码:

1 /***跨浏览器实现自定义事件处理
2 ****author:Mygirl
3 */
4 window.CEvent = {
5 addListener:function(obj,target,act){
6 if(obj.attachEvent)
7 obj.attachEvent("on"+target,act);
8 if(obj.addEventListener)
9 obj.addEventListener(target,act,false);
10 },
11 removeListener:function(obj,target,act){
12 if(obj.detachEvent)
13 obj.detachEvent("on"+target,act);
14 if(obj.removeEventListener)
15 obj.removeEventListener(target,act,false);
16 }
17 }
18
19
20 Object.prototype.eventHandler = function(handler){
21 var b = this;
22 b = b;
23 return function(c){
24 if(!c){c = window.event;}
25 if(c&&!c.target) {c.target = c.srcElement}
26 b[handler](c);
27 }
28 };

调用方式为:

1 var container = document.getElementById("panel");
2 CEvent.addListener(container,"mousemove",this.eventHandler("onmapmousemove"));
3  //container.onmousedown = this.eventHandler("onMouseOut");

其中onmapmousemove函数为:

 

1 function onmapmousemove(evt){
2 document.getElementById("panel").left = evt.clientX;
3 document.getElementById("panel").top = evt.clientY;
4  //......
5  }
原文地址:https://www.cnblogs.com/Mygirl/p/2094777.html