程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> EventUtil addHandler removeHandler

EventUtil addHandler removeHandler

編輯:C++入門知識

addHandler 方法,他的指責是分別是情況使用DOM0級方法、DOM2級方法或IE方法來添加事件。這個方法屬於一個名字叫EventUtil的對象,可以使用這個對象來處理浏覽器間的差異。addHandler() 方法接受3個參數:要操作的元素、時間名稱和事件處理程序函數。

與addHandler()方法對應的方法是removeHandler(),它也接受相同參數。這個方法的指責是移除之前添加的事件處理程序-------無論該事件處理程序是采取什麼方式添加到元素中的。如果其他方法無效,默認采用DOM0級方法。


EventUtil 的用法如下所示。

//EventUtil
var EventUtil = {
addHandler: function(element, type, handler){
if(element.addEventListener){
element.addEventListener(type, handler, false);
} else if(element.attachEvent){
element.attachEvent("on" + type, handler);
} else {
element["on" + type] = handler;
}
},
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;
}
}
}


var btn1 = document.getElementById("myBtn1");
var handler = function(){
alert("hello handler");
}
EventUtil.addHandler(btn1, "click", handler);
//EventUtil.removeHandler(btn1, "click", handler);

方法中首先檢查DOM2級,方法,如果存在DOM2級方法存在,則使用該方法:傳入事件類型、事件處理程序、和第三個參數false(表示冒泡階段)。 如果存在的是IE的方法,則采取第二種方案。注意,為了在IE8及更早版本中運行,此時的事件類型必須加上“on"前綴。最後一中可能就是使用DOM0級方法。此時,我們使用的是括號語法來將屬性名指定為事件處理程序,或者將事件設置為null。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved