複数の jQuery を 1 つのページに共存させるにはどうすればよいですか? jquery-1.5 や jquery-1.11 など。
なぜ 1 つのページに複数の jQuery を共存させる必要があるのかと疑問に思われるかもしれません。最新版のjQueryを直接引用することはできないのでしょうか?
答えは「いいえ」です。現実の生活はとても残酷だからです。例を挙げてみましょう:
既存の Web サイトはすでに jQuery 1.5 と関連プラグインを参照しています。 jQuery を最新バージョンに直接アップグレードする場合、これらのプラグインをすべてアップグレードするか、各プラグインの作成者が最新バージョンの jQuery をサポートするバージョンをリリースするのを待たない限り、これらのプラグインは機能しません。
新しいプラグインを開発したり、jQuery に基づいて JavaScript コードを作成したりする場合は、新しいバージョンを使用すると時間と労力を節約できます。
でも、古いバージョンは捨ててはいけません。どうすればよいでしょうか?
その方法は、jQuery の noConflict() を使用して、複数のバージョンを共存させることです。
jQuery をインポートすると、jQuery は 2 つの変数のみをウィンドウのグローバル空間に挿入します。
同時に、jQuery は古い window.$ オブジェクトと window.jQuery オブジェクトへの参照を内部的に保持します。電話をかけるとき:
window.$ は復元されましたが、window.jQuery は jQuery のままです。
電話をかけるとき:
window.$ と window.jQuery の両方が復元され、jQuery が変数 $jq を通じて使用できることを除いて、jQuery はまったくインポートされていないように見えます。
したがって、新しいバージョンと古いバージョンの jQuery を共存できるようにするには、次のように実装できます。
myscript.js で、$jq を使用して jQuery の 1.11 バージョンにアクセスします。
この時点で、問題は解決されました。
しかし、2 つのバージョンの jQuery を導入した後、ページがめちゃくちゃになってしまいました。誰かがコードを理解せずに var $jq = jQuery.noConflict(true); を削除したらどうなるでしょうか?または、jQuery をインポートする 2 つの行を入れ替えると、最終的には正しい jQuery バージョンを取得できなくなります。
最良の方法は、ページを変更せずに作成した新しい js ファイルを直接引用することです。
このようにして、myscript.js 内で最新バージョンの jQuery を参照します。ページに jQuery があるかどうか、またどのバージョンの jQuery があるかは気にしません。
新しくてより良いソリューションの作成を開始します。まず、myscript.js の本体を決定します。
Es ist eine gute Angewohnheit, anonyme Funktionen zu verwenden, um die Verschmutzung globaler Variablen zu vermeiden und den Zugriff auf externen Code zu verhindern.
Der nächste Schritt besteht darin, den jQuery 1.11-Code direkt einzubetten:
Der eingebettete Code ist natürlich der komprimierte Code, insgesamt 3 Zeilen, und dann hinzufügen:
Beachten Sie, dass $ eine lokale Variable ist. Sie können im folgenden Code jederzeit auf dieses $ verweisen. Es handelt sich nicht um dasselbe Objekt wie die globale Variable $ von jQuery in anderen Versionen der Seite.
Der letzte Schritt besteht darin, zu prüfen, ob das jQuery-Protokoll es uns ermöglicht, den jQuery-Quellcode direkt in unseren eigenen JavaScript-Code einzubetten.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er gefällt Ihnen allen.