ホームページ  >  記事  >  ウェブフロントエンド  >  jQuery パート 9 を読む: いくつかの欠陥の説明_jquery

jQuery パート 9 を読む: いくつかの欠陥の説明_jquery

WBOY
WBOYオリジナル
2016-05-16 18:05:501045ブラウズ

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 );
}


は次のように置き換える必要があります:



コードをコピーします

コードは次のとおりです: jQuery.addEvent = document.addEventListener function( elem, type, handle ) { if ( elem.addEventListener ) { elem.addEventListener( type, handle, false );
}
} :
function( elem, type, handle ) {
if ( elem.attactEvent ) {
elem.attactEvent( "on" type, handle );
}
}; 実際には、jQuery にはすでに jQuery.removeEvent があります。何らかの理由で jQuery.addEvent がありません。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。