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>
author:Lik
Endeavoring to powerless, struggling to move yourself.
Endeavoring to powerless, struggling to move yourself.

浙公网安备 33010602011771号