EventUtil.addHandler方法


EventUtil.addHandler:
  • addHandler 方法,職責是分別視情況而定來使用DOM0級方法、DOM2級方法或IE方法來添加事件

     這個方法屬於一個名字叫EventUtil的對象,可以使用這個對象來處理瀏覽器間的差異。                  

         addHandler() 方法接受3個參數:要操作的元素、事件名稱和事件處理程序函數。

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

//EventUtil
        var EventUtil = {

            addHandler: function (element, type, handler) {
                if (element.addEventListener) {        //DOM2級
                    element.addEventListener(type, handler, false);

                } else if (element.attachEvent) {      //DOM1級
                    element.attachEvent("on" + type, handler);

                } else {
                    element["on" + type] = handler;    //DOM0級
                }
            },

            removeHandler: function (element, type, handler) {   //類似addHandler

                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);

用法:

   方法中首先檢查DOM2級方法,如果DOM2級方法存在,則使用該方法:傳入事件類型、事件處理程序、和第三個參數false(表示冒泡階段)。

   如果存在的是IE的方法,則采取第二種方案。(注意,為了在IE8及更早版本中運行,此時的事件類型必須加上“on"前綴。)

   最后一種可能就是使用DOM0級方法。此時,我們使用的是括號語法將屬性名指定為事件處理程序或者將事件設置為null。

 

相關資料:安利一個博客 http://www.cnblogs.com/hykun/p/EventUtil.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM