100%確実ではないため、これに答えることを躊躇しますが、プラグインの2つのバージョンは、同じ名前(たとえば)を持っている限り、同じjQueryインスタンスに共存できないと確信しています$.autocomplete
。ただし、この問題を回避することはできます。これが私がそれらをどれだけ推薦するかによってソートされたいくつかの例です:
- 古いオートコンプリートの実装をアップグレードして、バージョン1.8を使用します
- 新しい実装には古いバージョンのオートコンプリートを使用するだけです
- プラグインの新しいバージョンの名前をautocomplete2のようなものに手動で編集します。これを手動で行うか、プラグインインクルード間で行います(以下を参照)
- 同じページでjQueryの2つの別々のインスタンスを使用し、各オートコンプリートプラグインバージョンをそれぞれのjQueryインスタンスにロードします。これを行うには、各jQueryバージョンを読み込んだ後に呼び出し、それらを別々の変数に
jQuery.noConflict
格納します。window.$
window.$2
バージョンの動的な名前変更(Samuel Rossilleの回答から取得、古いオートコンプリートの実装を壊さないように編集)
<!-- First include the new autocomplete plugin (1.8) -->
<script type="text/javascript" src="path/to/autocomplete version 1.8"></script>
<script type="text/javascript">
// Then 'rename' the plugin to something else, e.g. autocomplete18
jQuery.fn.autocomplete18 = jQuery.fn.autocomplete;
</script>
<!-- Then include the old version, which will overwrite jQuery.autocomplete -->
<script type="text/javascript" src="path/to/autocomplete version 1.0"></script>
<script>
// $.autocomplete18 should now contain the new autocomplete version
// $.autocomplete should contain the old version, not breaking the previous
// implementation
</script>