EventUtil.addHandler方法
-
addHandler 方法,職責(zé)是分別視情況而定來(lái)使用DOM0級(jí)方法、DOM2級(jí)方法或IE方法來(lái)添加事件。
? 這個(gè)方法屬于一個(gè)名字叫EventUtil的對(duì)象,可以使用這個(gè)對(duì)象來(lái)處理瀏覽器間的差異。 ? ? ? ? ? ? ?
? ? ? ? ?addHandler() 方法接受3個(gè)參數(shù):要操作的元素、事件名稱和事件處理程序函數(shù)。
? ? ? ? ?與addHandler()方法對(duì)應(yīng)的方法是removeHandler(),它也接受相同參數(shù)。這個(gè)方法的指責(zé)是移除之前添加的事件處理程序-------無(wú)論該事件處理程序是采取什么方式添加到元素中的。如果其他方法無(wú)效,默認(rèn)采用DOM0級(jí)方法。
//EventUtilvar EventUtil = {addHandler: function (element, type, handler) {if (element.addEventListener) { //DOM2級(jí)element.addEventListener(type, handler, false);} else if (element.attachEvent) { //DOM1級(jí)element.attachEvent("on" type, handler);} else {element["on" type] = handler; //DOM0級(jí)}},removeHandler: function (element, type, handler) { //類似addHandlerif (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);用法:
方法中首先檢查DOM2級(jí)方法,如果DOM2級(jí)方法存在,則使用該方法:傳入事件類型、事件處理程序、和第三個(gè)參數(shù)false(表示冒泡階段)。
如果存在的是IE的方法,則采取第二種方案。(注意,為了在IE8及更早版本中運(yùn)行,此時(shí)的事件類型必須加上“on"前綴。)
最后一種可能就是使用DOM0級(jí)方法。此時(shí),我們使用的是括號(hào)語(yǔ)法來(lái)將屬性名指定為事件處理程序,或者將事件設(shè)置為null。
?
相關(guān)資料:安利一個(gè)博客 http://www.cnblogs.com/hykun/p/EventUtil.html
更多專業(yè)前端知識(shí),請(qǐng)上 【猿2048】www.mk2048.com
總結(jié)
以上是生活随笔為你收集整理的EventUtil.addHandler方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: URL模块之parse方法
- 下一篇: js基本包装类型和引用类型