zoukankan      html  css  js  c++  java
  • 事件绑定(1)

    对于非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;
  • 相关阅读:
    读书笔记——读《构建之法:现代软件工程》第13~17章
    读《构建之法》十一,十二章有感
    男神女神配 社区交友网 —— 之 主页 详细解说
    典型用户和场景
    最终版本
    用户调研
    第9-11组总体评价
    第二次sprint
    读《构建之法》8-10章
    第一个Sprint
  • 原文地址:https://www.cnblogs.com/fengyuqing/p/javascript_addEvent_1.html
Copyright © 2011-2022 走看看