我需要有两个自动完成框作为我当前要求的一部分。它已经有正常的自动完成框,以前使用自动完成版本 1.0.2 实现,现在我已经实现了另一个自动完成框,带有自动完成 UI 版本 1.8.16。因此,需要在同一页面上运行多个版本的 jQuery 自动完成功能,这会导致冲突类型的问题。当然,以前实现的自动完成框无法重做或升级。
问题:自动完成 1(用 1.0.2 实现)仅在我评论自动完成插件 1.8.16 时才有效
我想让这两个功能都起作用。
你能告诉我可以做些什么吗?
任何线索将不胜感激。
谢谢
我需要有两个自动完成框作为我当前要求的一部分。它已经有正常的自动完成框,以前使用自动完成版本 1.0.2 实现,现在我已经实现了另一个自动完成框,带有自动完成 UI 版本 1.8.16。因此,需要在同一页面上运行多个版本的 jQuery 自动完成功能,这会导致冲突类型的问题。当然,以前实现的自动完成框无法重做或升级。
问题:自动完成 1(用 1.0.2 实现)仅在我评论自动完成插件 1.8.16 时才有效
我想让这两个功能都起作用。
你能告诉我可以做些什么吗?
任何线索将不胜感激。
谢谢
我不愿回答这个问题,因为我不是 100% 确定,但我很确定插件的两个版本不能在同一个 jQuery 实例中共存,只要它们具有相同的名称(例如$.autocomplete)。但是你可以解决这个问题。以下是一些示例,按我推荐的程度排序:
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>