私は確信していますが、理想的には、この問題をなくすjQueryの最新バージョンを1つ使用するようにサイトを更新してください。
あなたの質問への答えは、いいえ、 —少なくとも、適切に書かれたプラグインではコピーできません。適切に書かれたプラグインのハイレベルの構造は、これらの線に沿っている。
(function($) {
// Do things with $ here, such as registering a plugin function:
$.fn.thePlugin = function() {
// ...and presumably here as well...
};
})(jQuery);
プラグインは、プラグインがロードされたときjQuery
シンボルを制御のjQueryのバージョンへの参照を有することを意味します。
jQuery.fn.thePlugin = oldJQuery.fn.thePlugin;
を...しかし、あなたはjQueryのバージョン間の恐ろしいのクロストークを持っていると思います:
その後、jQueryの異なるバージョンのをロードした後、あなたがこれを行うために誘惑されるかもしれないプラグインは次のようになります新しいjQueryによって呼び出されましたが、古いjQueryを使用していました。
さて、あなたが物事をクリーンアップできるようになるまで、私のgreenPlugin
ので
以上で、あなたはプラグインのあなたの読み込みを複製する必要がありますことを起こる:
<script src="jquery-1.7.1.js"></script>
<script src="this-plugin.js"></script>
<script src="that-plugin.js"></script>
<script src="the-other-plugin.js"></script>
<script>
var jq171 = jQuery.noConflict(); // With or without `true`
</script>
<script src="jquery-1.9.1.js"></script>
<script src="this-plugin.js"></script>
<script src="that-plugin.js"></script>
<script src="the-other-plugin.js"></script>
...明らかにしています醜い。 :-)しかし、おそらくスクリプトは2回目にキャッシュから来るでしょう。つまり、jq171
でアクセスできるjQueryのバージョンとjQuery
/$
でアクセスできるjQueryの両方に3つのプラグインがあることを意味します。
jQueryの2つのバージョンのロードを表示する場合は、実際には '.noConflict()'ステートメントを表示する必要があります。 – jfriend00
@ jfriend00:まあ、技術的には、例のために必須ではありませんが、そうだと思います。 *編集:*私は持っています。 :-) –
ありがとうございました。私はファイルのバンドルを実装しただけで、バンドルの分割には対応したくないので、アップグレードしてベストを願っています。アップグレードの競合が発生する可能性がある場所がありますか? – Marie