プラグインが正常に動作している場合、これは機能するはずです。
<script src="jquery-1.2.2.js"></script>
<script src="thickbox.js"></script>
<script src="jquery-1.7.1.js"></script>
<script src="slideshow.js"></script>
(明らかに、これらのスクリプト名は構成されています。)例(ソース)を示します(Googleは1.2.2をホストしていないため、jQuery1.4.2とjQuery1.7.1を使用しました)。
上記は、正常に動作するプラグインで機能します。これは、正常に動作するプラグインがグローバルにまったく依存せず、ロードされた時点のグローバル$
の値を使用して、次に、クロージャーは、次のように、プラグインのコード全体でそのローカル参照を使用します。jQuery
// Example plug-in setup
(function($) {
// ...Plug-in code using `$` here -- note it's a *local* `$`,
// not the global `$`, and not the global `jQuery`...
})(jQuery);
また
(function() {
var $ = jQuery;
// ...Plug-in code using `$` here -- note it's a *local* `$`,
// not the global `$`, and not the global `jQuery`...
})();
これらは両方とも、プラグインがロードされた時点でjQuery
グローバル値を取得し、全体でローカルエイリアスを使用します。
プラグインがreadyイベントを待機する場合は、次のことも実行できます。
jQuery(function($) {
// ...Plug-in code using `$` here -- note it's a *local* `$`,
// not the global `$`, and not the global `jQuery`...
});
...readyハンドラーに渡されたjQuery関数を使用します。
上記のスクリプトのロード順序では、これら3つはいずれも正しく機能します(thickboxはjQuery 1.2.2を、スライドショーはjQuery 1.7.1を参照)。
しかし、私の冒頭の文の「if」は大きな「if」です。多くのプラグインは、このように防弾用に作成されていません。
上記にもかかわらず、動作するためにjQuery 1.2.2を必要とするプラグインから移行し、可能な限り(そしてほとんどの場合可能です)、jQueryを含むライブラリの2つの異なるバージョンをロードする必要を回避します。同じページ。