跨浏览器实现自定义事件处理

  
    
/* *跨浏览器实现自定义事件处理
*author:Mygirl
*
*/
window.DEvent
= {
addListener:
function (obj,target,act){
if (obj.attachEvent)
obj.attachEvent(
" on " + target , act);
if (obj.addEventListener)
obj.addEventListener(target , act ,
false );
}
removeListener:
function (obj,target,act){
if (obj.detachEvent)
obj.detachEvent(
" on " + target,act);
if (obj.removeEventListener)
obj.removeEventListener(target,act,
false );
}
}
  
    
Object.prototype.eventHandler = function (handler){
var b = this ;
b
= b;
return function (c){
if ( ! c){
c
= window.event ;
}
if (c &&! c.target){
c.target
= c.srcElement;
}
b[handler](c);
}
}

调用方法如下:

  
    
function test(){
var container = document.getElementById( " div1 " );
this .container.onmouseMove = this .eventHandler( " onMouseMoveMouse " );
CEvent.addListener(this.container, "mousemove", this.eventHandler("onmapmousemove"));
}

onMouseMoveMouse.js

  
    
Zx.prototype.onmapmousemove = function (evt) {
/* var cpointtmp = new ZxPoint(this.container.offsetLeft + evt.clientX - this.mapDiv.offsetLeft, this.container.offsetTop + evt.clientY - this.mapDiv.offsetTop);
Theodolite$setPoint(cpointtmp);
*/
alert(
" test " );
}

你可能感兴趣的:(浏览器)