jQuery源码 - 事件处理 - 整体架构

<pre name="code" class="javascript">// 事件管理的工具函数
jQuery.event = {
 
    global: {},
     
    // 绑定事件函数
    add: function() {},
     
    // 移除事件函数
    remove: function() {},
     
    // 主动触发事件函数
    trigger: function() {},
 
    // 事件分发函数
    dispatch: function() {},
     
    // 修复jQuery.Event对象的函数
    fix: function() {},
     
    // 包含一些事件常用属性,让KeyEvent和MouseEvent共享
    // 新建JQ事件对象的时候,这些属性就会被扩展进去
    props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
     
    // fix的勾子,应该是提供自定义勾子使用的,如果不存在的话,fix方法里面会使用keyHooks跟mouseHooks
    fixHooks: {},
     
    // 键盘事件勾子
    keyHooks: {},
     
    // 鼠标事件勾子
    mouseHooks: {},
     
    // 特殊事件类型的一些属性跟方法,这些属性跟方法均在前面的jQuery.event中被使用到,应该可以看做是跟勾子类似的对象
    special: {},
     
    // simulate这个方法暂时也是不理解其用途
    // 貌似是模仿一些具体类型的事件,然后触发
    simulate: function() {}
};
 
// 删除事件监听,在jQuery.event.remove里会用到
jQuery.removeEvent = function() {};
</pre>

  

posted @ 2017-06-30 21:33  likwin  阅读(173)  评论(0编辑  收藏  举报