1. 程式人生 > >javascript 相容W3c和IE的新增(取消)事件監聽方法

javascript 相容W3c和IE的新增(取消)事件監聽方法

事件作為javascript本身的一個必備功能,在目前javascript的使用中是無處不在的,基本要只要寫到javascrpt,就會用到javascript事件。下面就說說javascript中的新增事件監聽和取消事件監聽的方法,當然也要做到相容W3c和IE。下面是相容的程式碼:

//新增事件監聽相容函式
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);
}
上面這段程式碼是對監聽事件函式做了優化的,延遲載入事件監聽函式,這樣就不用每次都對新增或刪除事件進行判斷了,只在第一次新增或刪除監聽事件的時候進行判斷,會大大提高監聽事件的執行效率。