1. 程式人生 > >JS事件物件(event)的一些相容性寫法

JS事件物件(event)的一些相容性寫法

  • 獲得event物件相容性寫法 
    event || (event = window.event);
  • 獲得target相容型寫法 
    event.target||event.srcElement
  • 阻止瀏覽器預設行為相容性寫法 
    event.preventDefault ? event.preventDefault() : (event.returnValue = false);
  • 阻止冒泡寫法 
    event.stopPropagation ? event.stopPropagation() : (event.cancelBubble = true);
  • 新增事件監聽和取消事件監聽
  • //新增事件監聽相容函式
    function addHandler(target, eventType, handler){
    	if(target.addEventListener){//主流瀏覽器
    		addHandler = function(target, eventType, handler){
    			target.addEventListener(eventType, handler, false);
    		};
    	}else{//IE
    		addHandler = function(target, eventType, handler){
    			target.attachEvent("on"+eventType, handler);
    		};		
    	}
    	//執行新的函式
    	addHandler(target, eventType, handler);
    }
    //刪除事件監聽相容函式
    function removeHandler(target, eventType, handler){
    	if(target.removeEventListener){//主流瀏覽器
    		removeHandler = function(target, eventType, handler){
    			target.removeEventListener(eventType, handler, false);
    		}		
    	}else{//IE
    		removeHandler = function(target, eventType, handler){
    			target.detachEvent("on"+eventType, handler);
    		}		
    	}
    	//執行新的函式
    	removeHandler(target, eventType, handler);
    }

    注:後者皆為相容IE的相容性寫法