ホームページ ウェブフロントエンド jsチュートリアル jQuery-noConflict の競合防止メカニズムの簡単な分析

jQuery-noConflict の競合防止メカニズムの簡単な分析

Jun 20, 2017 pm 03:18 PM
jquery 対立 機構


出典: Taobao UED

多くの JS フレームワーククラス ライブラリは、関数または変数名として $ 記号の使用を選択しています。jQuery が最も典型的なものです。 jQuery では、$ 記号は window.jQuery オブジェクトの単なる 参照 であるため、$ が削除されたとしても、window.jQuery は依然としてクラス ライブラリ全体の整合性を保証する強力な支援となります。 jQuery の API 設計では、複数のフレームワーク間の参照の競合が十分に考慮されており、jQuery.noConflict メソッドを使用して簡単に制御を移すことができます。

jQuery.noConflict メソッドには、オプションのブール型パラメーター [1] が含まれており、$ 参照を引き渡すかどうか、および jQuery オブジェクト自体を引き渡すかどうかを決定します。

1.


jQuery

noConflict

(

[removeAll])

デフォルトでは、noConflict を実行すると変数 $ の制御が $ を生成する最初のライブラリに転送され、removeAll が true に設定されている場合、noConflict を実行すると $ と jQuery オブジェクト自体のすべての制御が 3 番目のライブラリに転送されます。それらを生成します。

例えば、KISSYとjQueryが混在し、API操作を簡素化するために$ = KISSYを使用する場合、この方法を使用して名前の競合の問題を解決できます。

それでは、このメカニズムはどのように実装されているのでしょうか?冒頭の jQuery ソース コードを読んでください[2]、最初に行うことは次のとおりです:














JavaScript




1

2

3

4

5


// 上書きの場合は jQuery 上にマップします

window.jQuery, // 上書きの場合は $ をマップします

jQuery が変数が強制的に上書きされるのを防ぐために、2 つのプライベート変数を介してウィンドウ環境の 2 つのオブジェクト jQuery と $ をマップすることは容易に理解できます。 noConflict メソッドが呼び出されると、_jQuery、_$、jQuery、$ の違いを使用して制御の転送方法が決定されます。具体的なコードは次のとおりです。














JavaScript



1

2

3

4

5

6

7

8

9

10

11


noconflict

functiondeep

if ( 深い && ウィンドウ. jQuery === jQuery ) {

ウィンドウ.jQuery = _jQuery ;

}

return jQuery ;

}

🎜

上記のパラメータ設定の問題を見てみましょう。 deep が設定されていない場合、_$ は window.$ をカバーしますが、jQuery エイリアス $ は無効になりますが、jQuery 自体はそのままです。別のライブラリまたはコードが $ 変数を再定義すると、その制御は完全に移行されます。一方、 deep を true に設定すると、_jQuery が wi​​ndow.jQuery を上書きし、$ と jQuery の両方が無効になります。

この操作の利点は、noConflict メソッドによって提供されるハンドオーバー メカニズムと、カバーされていない jQuery オブジェクトを返すという事実により、フレームワークの混合や jQuery の複数バージョンの共存など、競合性の高い実行環境であっても、変数を使用して完全にマッピングして競合を解決できます。

しかし、プラグインの障害やその他の問題が発生する可能性があることは避けられません。もちろん、コンテキスト パラメーター $ Alias:














JavaScript




1

2

3

4

5

6


var query = jQuery.noConflict(tru​​e );

(関数 ($) {

// プラグインまたは他の形式のコード、パラメーターを jQuery に設定することもできます

} ) (クエリ);

[1] http://api.jquery.com/jQuery.noConflict/#jQuery-noConflict-removeAll
[2] https://github.com/jquery/jquery/blob/master/ src/core.js

以上がjQuery-noConflict の競合防止メカニズムの簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

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

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

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

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

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 演算子 // を使用して、要素に特定の属性があるかどうかを判断します

jQueryを使用してテーブルに新しい行を追加する方法の紹介 jQueryを使用してテーブルに新しい行を追加する方法の紹介 Feb 29, 2024 am 08:12 AM

jQuery は、Web 開発で広く使用されている人気の JavaScript ライブラリです。 Web 開発中は、JavaScript を使用してテーブルに新しい行を動的に追加することが必要になることがよくあります。この記事では、jQuery を使用してテーブルに新しい行を追加する方法を紹介し、具体的なコード例を示します。まず、jQuery ライブラリを HTML ページに導入する必要があります。 jQuery ライブラリは、次のコードを通じてタグに導入できます。

jQueryで要素に属性値が含まれているかどうかを確認するにはどうすればよいですか? jQueryで要素に属性値が含まれているかどうかを確認するにはどうすればよいですか? Feb 28, 2024 pm 02:54 PM

jQuery では、要素に特定の属性値が含まれているかどうかを確認する必要があることがよくあります。これにより、要素の属性値に基づいてアクションを実行できるようになります。この記事では、jQueryを使って要素に特定の属性値が含まれているかどうかを確認する方法と、具体的なコード例を紹介します。まず、要素の属性を操作するための jQuery の一般的なメソッドをいくつか見てみましょう。 .attr(): 要素の属性値を取得または設定するために使用されます。 .prop(): 要素の属性値を取得または設定するために使用されます。

See all articles