兼容8事件綁定與解綁addEventListener、removeEventListener和ie的attachEvent、detachEvent


;(function(){ // 事件綁定
            bindHandler = (function() { if (window.addEventListener) {// 標准瀏覽器
                    return function(elem, type, handler) { // elem:DOM節點 type:事件類型 handler:事件處理函數
                        // 最后一個參數為true:在捕獲階段調用事件處理程序;為false:在冒泡階段調用事件處理程序。注意:ie沒有這個參數
                        elem.addEventListener(type, handler, false); } } else if (window.attachEvent) {// IE瀏覽器
                    return function(elem, type, handler) { elem.attachEvent("on" + type, handler); } } }()); // 事件解綁
            removeHandler = (function() { if (window.removeEventListener) {// 標准瀏覽器
                    return function(elem, type, handler) { elem.removeEventListener(type, handler, false); } } else if (window.detachEvent) {// IE瀏覽器
                    return function(elem, type, handler) { elem.detachEvent("on" + type, handler); } } }()); }());

  以上便是已封裝好了的兼容ie8的事件綁定與解綁函數。方法比較簡單,不需要特殊說明。

  第一行和最后一行,有些童鞋可能不太理解。用一個匿名函數包裹是為了避免污染命名空間。開頭一個分號是為了區分代碼段。這樣可以使代碼清晰、簡明、便於維護。


免責聲明!

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



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