1. バインド メソッド、最後のパラメータ fn は冗長です
// オブジェクト リテラルを処理します
if ( typeof type === "object" ) {
for ( var key in type ) {
this[ name ](key, data, type[key) ], fn) ;
}
これを返します;
2, コメント
// クリック用に次の値を追加します。 1 === 左; 2 === 右
を変更する必要があります
// マウスダウン/マウスアップのいずれかを追加します: 1 = == left; 2 === middle; 3 === right
3、データ メソッド、ローカル変数 innerKey を定義します。まだ jQuery.expando を使用しています。
var innerKey = jQuery.expando, getByName = typeof name = == "string", thisCache,
4, jQuery.event.add メソッドの引数を e に変更し、apply を call に変更した方が良いです。渡されるパラメータはイベント オブジェクト 1 つだけであるためです。
elemData.handle =eventHandle = function( e ) {
// jQuery.event.trigger() の 2 番目のイベントと
// ページがアンロードされた後にイベントが呼び出されたとき、
return typeof jQuery !== "unknown" && ( !e | jQuery.event.triggered !== e.type) ?
jQuery.event.elem, argument ) :
>
5、「ブラウザを繰り返し検出しない」という原則に基づいて、jQuery.event.add 以下のコード
コードをコピー
コードは次のとおりです。 if ( elem.addEventListener ) { elem.addEventListener( type,eventHandle, false ); else if ( elem.attachEvent ) {
elem.attachEvent( "on" type,eventHandle );
}
は次のように置き換える必要があります:
コードをコピーします
}
} :
function( elem, type, handle ) {
if ( elem.attactEvent ) {
elem.attactEvent( "on" type, handle );
}
}; 実際には、jQuery にはすでに jQuery.removeEvent があります。何らかの理由で jQuery.addEvent がありません。