首页 > 代码库 > 事件处理程序

事件处理程序

 事件处理程序:
1 var EventUtil={ 2 addHandler:function(element,type,handler){ 3 if(element.addEventListener){ //DOM2级处理程序 4 element.addEventListener(type,handler,flase) 5 } 6 else if{ 7 element.attachEvent("on"+type,handler); //IE处理程序 8 } 9 else { 10 element["on"+type]=handler; //DOM0级处理程序 11 } 12 }, 13 removeHandler:function(element,type,handler){ 14 if(element.removeEventListener){ 15 element.removeEventListener(type,handler,false); 16 } 17 else if(element.detachEvent){ 18 element.detachEvent("on"+type.handler); 19 } 20 else{ 21 element["on"+type]=null; 22 } 23 } 24 }

 

Event 对象:

1.非IE下:currentTarget属性指向被绑定事件(this)元素,Target属性指向触发事件的元素;
IE下:DOM0级事件处理程序的srcElement属性指向被绑定事件(this)元素,DOM2级处理程序时指向触发事件的元素;
2.非IE其它属性和方法:type:触发事件类型("click"); stopPropagatopn():取消事件冒泡;preventDefault():取消默认事件,例如href属性的跳转;
IE下其它属性和方法:type:触发事件类型("click");cancelBubble:为true时取消冒泡;returnValue:为false时取消事件默认行为
  
跨浏览器事件对象
var
eventUtil = { getEvent : function(event){ return event ? event : window.event; }; getTarget : function(event){ return event.target || event.srcElement; }; preventDefault : function(event){ if(event.preventDefault){ event.preventDefault(); }else{ event.returnValue = false; } }; stopPropagation : function(event){ if(event.stopPropagation){ event.stopPropagation(); }else{ event.cancelBubble = true; } }; };

 

事件处理程序