ホームページ >ウェブフロントエンド >jsチュートリアル >異なるjqueryバージョンが競合した場合の対処方法
#このチュートリアルの動作環境: Windows7 システム、jQuery1.3.2&&jQuery1.4.2 バージョンこの方法は、すべてのブランドのコンピューターに適しています。異なる jquery バージョン間の競合の解決策: まず、[1.4.2] のソース コードの最後に関連するコードを追加し、次に、[ のフレームワークに基づいて、すべてのプラグインの先頭に関連するコードを追加します。 1.4.2] コード; 最後に、[jQuery1.4.2] に基づく選択関数を使用したい場合は、[$j4(element)] を使用します。
異なる jQuery バージョン間の競合の解決策:
ケース: jQuery 1.3.2 と 1.4.2 の間の競合を解決します。
最初のステップ: 1.4.2 のソース コードの最後に次の文を追加します:
var $j4 = jQuery.noConflict(true);ここに追加する理由ソース コードは大きなものとは異なります ほとんどの記事では、必要なときにソース コードを追加することに言及しています。これは、1.4.2 ベースの多くのプラグインを追加する必要があるためです。ここに追加すると、このコードをあまりにも多くのプラグに追加することによって発生する重複を避けることができます-ins。この文は、1.4.2 の jQuery と $ の参照権限をすべて放棄します。つまり、1.4.2 ベースのプラグインでは jQuery と $ を使用できなくなります。同時に $j4 に新しい名前空間を与えます (これは window の属性です)。 1.4.2 のソース コードを見ると、実際に次の 2 つの文が実行されていることがわかります。
window.$=_$; window.jQuery=_jQuery;原理は
window.$=_temp$ (戻り値) と同じです。名前空間)、名前が異なります。
ステップ 2: 1.4.2 フレームワークに基づくすべてのプラグインの先頭に次のコードを追加します。
var _temp$ = window.$,_tempjQuery = window.jQuery;jQuery1 の $ と jQuery を配置します。 3.2 一時変数スペースに移動します:
window.$ = $j4;この文と次の文はすべて、jQuery と $ を正しく使用するための中間コードです。次の
$j4 は、正しい参照を与えるためのものです。
window.jQuery = $j4;最初に一時変数を保存する必要がある理由は 3 つあります: ①. 大量の jQuery プラグイン ソース コードを変更したくありません。変更しないことをお勧めします。変更した場合でも、そのままにしておきます。できるだけ変更しないようにしてください。また、途中の元のコードを変更せずに、先頭と末尾に変更したコードを追加することも良い方法です。 ②. 1.4.2 では jQuery と $ の制御を放棄しましたが、既存のプラグイン コードはそれらを参照として使用します。その他のプラグインも、jQuery 下のプラグインでない限り、$ または jQuery で参照する必要があります。 ③. 1.3.2 では、プラグインが
window.$ と
window.jQuery を直接使用して jQuery と $ を参照するのを防ぐため、これは稀ではありますが、念のため。
window.$ = _temp$;//将$的引用权限返还给jQuery1.3. window.jQuery = _tempjQuery;//将jQuery的引用权限返还给jQuery1.3.
ステップ 3: jQuery1 に基づく選択関数を使用する場合。 4.2 以降では、$j4(element ) のみを使用できます。
要約: これまでのところ実現可能な解決策: jQuery1.4.2 は $ と jQuery の制御権限を完全に放棄します。 1.3.2 $ の制御権は放棄するが、jQuery の権限は放棄しない 実際、jQuery も放棄することができますが、別名 $j3 を与える必要があります。 $ の制御権限を取得するプロトタイプを jQuery1.3.2 の背後に配置するのが最善です。ただ、今後 jQuery1.4.2 を使いたい場合は $j4 を使って参照する必要があります。しかし、この方法では、jQuery フレームワークのバージョンの競合がどれほど多くても、それらはすべて解決されます。 jQuery 1.2 になったらどうなるか、(2) の実行手順を参照してください。ただし、最初の手順は次のように変更されます。var $j2 = jQuery.noConflict(true);3 番目の手順は
$j2(element) を使用します。原則は同じです。
関連する無料学習の推奨事項:JavaScript (ビデオ)
以上が異なるjqueryバージョンが競合した場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。