EventUtilオブジェクト詳細


EventUtilオブジェクト全見
以下のEventUtilオブジェクトコードは、親測定で利用できます.詳細な注釈が含まれています.
[オブジェクトの各メソッド名(緑のフォント)をクリックすると、この方法を紹介する部分に直接ジャンプできます.]
var EventUtil={
	
   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;
      }
   },

   getEvent:function(event){  //            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){  //       DOM    
                                     //       document.body         
      if(event.stopPropagation){
         event.stopPropagation();
      }else{
         event.cancelBubble=true;
      }
   },
		
   getRelatedTarget:function(event){  //  mouseover mouseout    
      if(event.relatedTarget){
         return event.relatedTarget;
      }else if(event.toElement){      //  IE8-
         return event.toElement;
      }else if(event.formElement){
         return event.formElement;
      }else{
         return null;
      }
   },
		
   getButton:function(event){    //  mousedown mouseup                
      if(document.implementation.hasFeature("MouseEvents","2.0")){
         return event.button;
      }else{
         switch(event.button){   // IE    button     DOM    button  
            case 0:
            case 1:
            case 3:
            case 5:
            case 7:
               return 0;  //         (     )
            case 2:
            case 6:
               return 2;  //           
            case 4:
               return 1;  //     (     )
         }
      }
   },
		
   getWheelDelta:function(event){ //               
      if(event.wheelDelta){
         return event.wheelDelta;
      }else{
         return -event.detail*40;
      }
   },
		
   getCharCode:function(event){   //              ,  keypress     
      if(typeof event.charCode=="number"){
         return event.charCode;
      }else{
         return event.keyCode;
      }
   }
		
};
本質的には、EventUtilは、ブラウザ間でイベントの違いやイベント方法の違いをバランスよく実現するために存在し、
効果的にイベントを解決しました.