2

複数のプラグインが jquery のバージョンで競合しているという問題に遭遇しました。Google で検索したところ、最終的には 1 つのバージョンの jquery を使用し、コードをそのバージョンの jquery に更新する必要があることがわかりました。ただし、好奇心から、次のことを行うとどうなるか知りたいです。

<include latest jquery>
<include script that uses jquery>  <---and this jquery code is called back or triggered in some event handler function.. what happens then? what jquery $ version is used? the last jquery object that was added (the 'yet another version of jquery' )
<include some other version of jquery>
<include yet another version of jquery>

jqueryのどのバージョンが使用されていますか? なぜ?具体的には、各スクリプトの読み込みと実行はどのように行われるのでしょうか? 最新の jquery の $ エイリアスを呼び出すだけですか? ご協力ありがとうございました。

4

3 に答える 3

6

jQuery.noConflict() を使用して、複数のバージョンの jQuery を持つことができます。$ を使用するのは 1 つだけです。

例えば

<script src='jquery-1.3.2.js'></script>
<script>
var jq132 = jQuery.noConflict();
</script>
<script src='jquery-1.4.2.js'></script>
<script>
var jq142 = jQuery.noConflict();
</script>

その後、jq142 と jq132 を使用できます。詳細http://api.jquery.com/jQuery.noConflict/

于 2013-01-26T00:43:08.293 に答える
1

jQueryを含めると、jQuery変数がオーバーライドされます。したがって、実際には、自分が想定していることを実行でき、。を使用しても正常に機能するはず$です。

これを行わない理由は、ソフトウェアの複数のバージョンを同時に維持するのは面白くなく、クライアントはjQueryの複数のバージョンをダウンロードする必要があり、JSコードの一部を配置する場所に奇妙な依存関係があるためです。そこの。できるだけ早くこの問題をそのソースで修正してください(つまり、1つのバージョンを使用してください)。

動作中:http://jsfiddle.net/AbAgu/

于 2013-01-26T00:37:31.920 に答える
0

それは依存します。スクリプトがロードされ、順番に実行されます。中間スクリプトですぐに実行されるコードは、最上位のスクリプトにある jQuery を使用します。後で延期されるコード (たとえば、別のスクリプトによって呼び出される関数定義、またはイベント ハンドラー内にネストされる関数定義) は、読み込まれた最終バージョンを使用します。

それが望ましくない場合は、jQuery.noConflict() を使用できますが、正しいバージョンを使用するために使用しているプラ​​グインを変更する必要がある可能性があります。

于 2013-01-26T00:52:54.867 に答える