实现监听事件的添加和删除。直接上代码:
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 };
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");
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 }
2 document.getElementById( " panel " ).left = evt.clientX;
3 document.getElementById( " panel " ).top = evt.clientY;
4 // ......
5 }