我不愿回答这个问题,因为我不是 100% 确定,但我很确定插件的两个版本不能在同一个 jQuery 实例中共存,只要它们具有相同的名称(例如$.autocomplete
)。但是你可以解决这个问题。以下是一些示例,按我推荐的程度排序:
- 升级旧的 autoComplete 实现以使用 1.8 版
- 只需将旧版本的 autoComplete 用于您的新实现
- 手动将新版本插件的名称编辑为 autocomplete2 之类的名称。手动执行此操作或在插件包含之间执行此操作(见下文)
- 在同一页面上使用两个单独的 jQuery 实例,将每个 autoComplete 插件版本加载到每个相应的 jQuery 实例中。您可以通过
jQuery.noConflict
在加载每个 jQuery 版本并将它们存储在单独的变量中之后调用来执行此操作,例如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>