ホームページ ウェブフロントエンド jsチュートリアル jQuery.noConflict()_jquery を簡単に処理する

jQuery.noConflict()_jquery を簡単に処理する

May 16, 2016 pm 03:15 PM
jquery

jQuery は最も広く使用されているフロントエンド フレームワークの 1 つであり、これに基づいて多数のサードパーティ ライブラリやプラグインが開発されています。グローバルな名前空間の汚染を避けるために、jQuery は変数の競合を解決する jQuery.noConflict() メソッドを提供します。この方法は間違いなく非常に効果的です。残念ながら、jQuery の公式ドキュメントではこのメソッドについて十分に明確に説明されておらず、多くの開発者は jQuery.noConflict() を呼び出したときに正確に何が起こるかを理解していないため、使用時に多くの問題が発生します。それにもかかわらず、jQuery.noConflict() の背後にある実装原則は、Web 開発者が学習して習得する価値があり、グローバルな名前空間汚染などの問題を解決する強力なツールになる可能性があります。

jQuery.noConflict() の役割は何ですか?
jQuery.noConflict() は 1 つの目的のためにのみ存在します。これにより、同じページに複数の jQuery インスタンス、特に異なるバージョンの jQuery をロードできるようになります。なぜ 1 つのページで複数の異なるバージョンの jQuery オブジェクトをロード/使用する必要があるのか​​と疑問に思われるかもしれません。一般的に、2 つの状況があります。 1 番目のケースでは、ビジネス コードは最新バージョンの jQuery ライブラリを使用し、選択したサードパーティ プラグインは以前のバージョンの jQuery ライブラリに依存しています。2 番目のケースでは、既に存在するシステムを保守しています。ビジネス さまざまな理由により、コードは古いバージョンの jQuery ライブラリを参照しており、新しく開発されたモジュールは他のバージョンの jQuery ライブラリを使用しています。いずれの場合も、jQuery オブジェクト/メソッドの競合の問題に直面する必要があります。幸いなことに、jQuery.noConflict() はこの問題の解決に役立ちます。

jQuery が読み込まれるとどうなりますか?
jQuery がページによって参照/ロードされると、jQuery は自己実行関数 (匿名関数) にカプセル化され、jQuery が提供するすべての変数、関数、オブジェクトは匿名関数内の実行可能環境内にあり、外部環境から呼び出すことはできません。 . グローバルな名前空間の汚染を防ぎます。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
ログイン後にコピー

jQuery は、匿名関数内で jQuery と $ という 2 つのグローバル オブジェクトを定義し、それ自体を外部環境に公開します。開発者が使用するさまざまなパブリック メソッド (jQuery.ajax()、jQuery.css() など) には、これら 2 つのオブジェクトを通じてアクセスします。最初は、それらは匿名関数内の同じオブジェクト jQuery (プライベート変数) を指しており、これを通じて匿名関数内のプライベート変数と関数にアクセスします。これにより、匿名関数の内部プライベート変数と関数は、実行後もメモリ内に残り、JavaScript ガベージ コレクション メカニズムによってクリアされなくなります。

window.jQuery = window.$ = jQuery;
ログイン後にコピー

ページによって jQuery が読み込まれると、現在のページにはすでに 2 つのグローバル変数 jQuery と $ が含まれている可能性があります (たとえば、他のサードパーティ ライブラリが読み込まれ、それらも内部的に定義されている)。これにより、既存のオブジェクトが上書きされます (グローバルな名前空間汚染)。この問題を解決するために、jQuery は既存のグローバル変数を内部的にキャッシュし、後続の呼び出しのためにプライベート変数 _jQuery および _$ に保存します。したがって、jQuery ライブラリがページにロードされたときに jQuery オブジェクトと $ オブジェクトがまだ存在しない場合、_jQuery と _$ は両方とも未定義になります。それ以外の場合は、既存の jQuery と $ への参照が保存されます (おそらくサードパーティからのもの)。以前に参照したライブラリ) または別のバージョンの jQuery ライブラリ)。その後、jQuery はこれら 2 つのグローバル変数を上書きし、上記のように自身を外部環境に公開します。この時点で、ページ上のグローバル変数 jQuery と $ は、導入したばかりの jQuery ライブラリを指しています。

// Map over jQuery in case of overwrite
_jQuery = window.jQuery,

// Map over the $ in case of overwrite
_$ = window.$,

// Otherwise expose jQuery to the global object as usual
window.jQuery = window.$ = jQuery;

ログイン後にコピー

jQuery.noConflict() の魔法の効果?
あなたが保守しているシステムではすでに jQuery ライブラリのバージョン 1.7.0 を参照しており、新たに追加する機能では jQuery ライブラリのバージョン 1.10.2 を参照しているとします。それでは、jQuery 1.7.0 を再利用したり、両方のバージョンの jQuery ライブラリを同時に使用したりする方法はあるのでしょうか?答えは「はい」です、それは jQuery.noConflict() です。実際、jQuery.noConflict() を使用すると、グローバル変数 jQuery と $ を以前に参照したオブジェクトに即座にリダイレクトできます。すごいですよね?これが、jQuery がそれ自体を外部に公開する前に、以前に参照したオブジェクトを内部的にキャッシュする理由です。
− jQuery.noConflict() はオプションのブールパラメータを受け入れます。通常、デフォルト値は false です。このパラメータはどのような影響を与えるのでしょうか?実際、それはとても簡単です。 jQuery.noConflict() または jQuery.noConflict(false) が呼び出された場合、グローバル変数 $ のみが以前の参照値にリセットされます。jQuery.noConflict() または jQuery.noConflict(true) が呼び出された場合、グローバル変数$ は以前の参照値にリセットされます。jQuery と $ は両方とも以前の参照値にリセットされます。これは非常に重要なので、覚えておくことをお勧めします。 jQuery.noConflict(false/true) を呼び出すと、現在の jQuery インスタンスが返されます。この機能を使用して、jQuery の名前を変更できます。

// "Renaming" jQuery
var jayquery = jQuery.noConflict( true );
// Now we can call things like jayquery.ajax(), jayquery.css(), and so on
ログイン後にコピー

別のコード スニペットを見て、魔法の noConflict() を本当に理解しているかどうかをテストしてみましょう



<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>





				

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

jQueryのリファレンスメソッドを詳しく解説:クイックスタートガイド jQueryのリファレンスメソッドを詳しく解説:クイックスタートガイド Feb 27, 2024 pm 06:45 PM

jQuery 参照方法の詳細説明: クイック スタート ガイド jQuery は、Web サイト開発で広く使用されている人気のある JavaScript ライブラリであり、JavaScript プログラミングを簡素化し、開発者に豊富な機能を提供します。この記事では、jQuery の参照方法を詳しく紹介し、読者がすぐに使い始めるのに役立つ具体的なコード例を示します。 jQuery の導入 まず、HTML ファイルに jQuery ライブラリを導入する必要があります。 CDN リンクを通じて導入することも、ダウンロードすることもできます

jQueryでPUTリクエストメソッドを使用するにはどうすればよいですか? jQueryでPUTリクエストメソッドを使用するにはどうすればよいですか? Feb 28, 2024 pm 03:12 PM

jQueryでPUTリクエストメソッドを使用するにはどうすればよいですか? jQuery で PUT リクエストを送信する方法は、他のタイプのリクエストを送信する方法と似ていますが、いくつかの詳細とパラメータ設定に注意する必要があります。 PUT リクエストは通常​​、データベース内のデータの更新やサーバー上のファイルの更新など、リソースを更新するために使用されます。以下は、jQuery の PUT リクエスト メソッドを使用した具体的なコード例です。まず、jQuery ライブラリ ファイルが含まれていることを確認してから、$.ajax({u

徹底した分析: jQuery の長所と短所 徹底した分析: jQuery の長所と短所 Feb 27, 2024 pm 05:18 PM

jQuery は、フロントエンド開発で広く使用されている高速、小型、機能豊富な JavaScript ライブラリです。 2006 年のリリース以来、jQuery は多くの開発者にとって最適なツールの 1 つとなっていますが、実際のアプリケーションでは、いくつかの利点と欠点もあります。この記事では、jQuery の長所と短所を詳しく分析し、具体的なコード例で説明します。利点: 1. 簡潔な構文 jQuery の構文設計は簡潔かつ明確であるため、コードの読みやすさと記述効率が大幅に向上します。例えば、

jQueryで要素の高さ属性を削除するにはどうすればよいですか? jQueryで要素の高さ属性を削除するにはどうすればよいですか? Feb 28, 2024 am 08:39 AM

jQueryで要素の高さ属性を削除するにはどうすればよいですか?フロントエンド開発では、要素の高さ属性を操作する必要が生じることがよくあります。要素の高さを動的に変更する必要がある場合や、要素の高さ属性を削除する必要がある場合があります。この記事では、jQuery を使用して要素の高さ属性を削除する方法と、具体的なコード例を紹介します。 jQuery を使用して高さ属性を操作する前に、まず CSS の高さ属性を理解する必要があります。 height 属性は要素の高さを設定するために使用されます

jQuery のヒント: ページ上のすべての a タグのテキストをすばやく変更する jQuery のヒント: ページ上のすべての a タグのテキストをすばやく変更する Feb 28, 2024 pm 09:06 PM

タイトル: jQuery ヒント: ページ上のすべての a タグのテキストをすばやく変更する Web 開発では、ページ上の要素を変更したり操作したりする必要がよくあります。 jQuery を使用する場合、ページ内のすべての a タグのテキスト コンテンツを一度に変更する必要がある場合があります。これにより、時間と労力を節約できます。以下では、jQuery を使用してページ上のすべての a タグのテキストをすばやく変更する方法と、具体的なコード例を紹介します。まず、jQuery ライブラリ ファイルを導入し、次のコードがページに導入されていることを確認する必要があります: &lt

jQuery を使用してすべての a タグのテキスト コンテンツを変更する jQuery を使用してすべての a タグのテキスト コンテンツを変更する Feb 28, 2024 pm 05:42 PM

タイトル: jQuery を使用して、すべての a タグのテキスト コンテンツを変更します。 jQuery は、DOM 操作を処理するために広く使用されている人気のある JavaScript ライブラリです。 Web 開発では、ページ上のリンク タグ (タグ) のテキスト コンテンツを変更する必要が生じることがよくあります。この記事では、この目標を達成するために jQuery を使用する方法を説明し、具体的なコード例を示します。まず、jQuery ライブラリをページに導入する必要があります。 HTML ファイルに次のコードを追加します。

jQuery における eq の役割と応用シナリオを理解する jQuery における eq の役割と応用シナリオを理解する Feb 28, 2024 pm 01:15 PM

jQuery は、Web ページでの DOM 操作やイベント処理を処理するために広く使用されている人気のある JavaScript ライブラリです。 jQueryではeq()メソッドを利用して指定したインデックス位置の要素を選択しますが、具体的な使い方と応用シーンは以下の通りです。 jQuery では、 eq() メソッドは、指定されたインデックス位置にある要素を選択します。インデックス位置は 0 からカウントされます。つまり、最初の要素のインデックスは 0、2 番目の要素のインデックスは 1 などとなります。 eq() メソッドの構文は次のとおりです。 $("s

jQuery 要素に特定の属性があるかどうかを確認するにはどうすればよいですか? jQuery 要素に特定の属性があるかどうかを確認するにはどうすればよいですか? Feb 29, 2024 am 09:03 AM

jQuery 要素に特定の属性があるかどうかを確認するにはどうすればよいですか? jQuery を使用して DOM 要素を操作する場合、要素に特定の属性があるかどうかを判断する必要がある状況がよく発生します。この場合、jQuery が提供するメソッドを使用してこの関数を簡単に実装できます。以下では、jQuery 要素が特定の属性を持つかどうかを判断するために一般的に使用される 2 つの方法を紹介し、具体的なコード例を添付します。方法 1: attr() メソッドと typeof 演算子 // を使用して、要素に特定の属性があるかどうかを判断します

See all articles