文章出處

對于非IE瀏覽器來說,利用現代事件綁定非常方便,但是對于IE瀏覽器,它自身提供了專門的現代事件綁定方法,但是IE的現代事件綁定方法問題多多,而且還會導致內存泄露,所以本篇文章就是利用傳統事件綁定來模擬W3C的現代事件綁定方法。直接開代碼,注釋非常清楚:

 1 function addEvent(obj, type, fn) {
 2     if (typeof window.addEventListener != 'undefined') {
 3         obj.addEventListener(type, fn, false);
 4     } else {
 5         //定義一個哈希表來存放事件對象
 6         obj.events = obj.events || {};
 7             
 8         //將事件函數存放在事件對象的數組中
 9         if (!obj.events[type]) {
10             obj.events[type] = [];
11             //將第一個事件函數存放在事件對象數組中的第一個位置上
12             if (obj['on' + type]) obj.events[type][0] = fn;
13         }
14         //將后面的事件函數依次存放在事件對象數組中的其他位置
15         obj.events[type][addEvent.ID++] = fn;
16         //執行事件函數
17         obj['on' + type] = function () {
18             for (var i in obj.events[type]) {
19                 obj.events[type][i]();
20             }
21         };
22     }
23 }
24 //為每個事件分配一個計數器
25 addEvent.ID = 1;

 


文章列表


不含病毒。www.avast.com
全站熱搜
創作者介紹
創作者 大師兄 的頭像
大師兄

IT工程師數位筆記本

大師兄 發表在 痞客邦 留言(0) 人氣()