1,bind 方法,最后一个参数fn是多余的 复制代码 代码如下: // Handle object literals if ( typeof type === "object" ) { for ( var key in type ) { this[ name ](key, data, type[key], fn); } return this; }
2,注释 复制代码 代码如下: // Add which for click: 1 === left; 2 === middle; 3 === right
应修改为 复制代码 代码如下: // Add which for mousedown/mouseup : 1 === left; 2 === middle; 3 === right
3,data方法,定义了局部变量internalKey,但后续代码仍然沿用jQuery.expando。 复制代码 代码如下: var internalKey = jQuery.expando, getByName = typeof name === "string", thisCache,
4,jQuery.event.add方法,arguments改为e,apply改为call 更好一些。因为只会传一个参数:事件对象。 复制代码 代码如下: elemData.handle = eventHandle = function( e ) { // Discard the second event of a jQuery.event.trigger() and // when an event is called after a page has unloaded return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ? jQuery.event.handle.apply( eventHandle.elem, arguments ) : undefined;