javascript - 具有相同函数名称的两个 jquery 插件之间的冲突

标签 javascript jquery jquery-ui autocomplete

我在一个大型站点工作,该站点包含 2 个相互冲突的 jquery 插件,用于执行自动完成。

1) jquery.autocomplete.js(不是 jquery ui 的一部分):

$.fn.extend({
    autocomplete: function   ...

2) jquery.ui.autocomplete.js(来自最新的 jquery ui 库),它也使用自动完成关键字。

$.widget( "ui.autocomplete", {   ...

有没有办法指定我只使用第二个 jquery.ui 小部件 打电话时

$( "#tags" ).autocomplete ...

不更改这 2 个文件?

最佳答案

由于第二个自动完成使用 $.Widget 方法在 jQuery 中注册自己,因此更改内部自动完成的行为将是最容易的。

如果不对两个脚本加载之间的 jQuery 对象进行一些更改,您将无法同时加载它们,因为它们只会相互冲突(或覆盖)。

我会试试这个:

<script src="jquery.autocomplete.js"> </script>
<script>
    // rename the local copy of $.fn.autocomplete
    $.fn.ourautocomplete = $.fn.autocomplete;
    delete $.fn.autocomplete;
</script>
<script src="jquery-ui.autocomplete.js"> </script>

这将使得:

$().autocomplete()

使用 jQuery UI 版本,并且

$().ourautocomplete()

使用您的本地版本。

关于javascript - 具有相同函数名称的两个 jquery 插件之间的冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11898992/

相关文章:

javascript - 如何创建一个可以在javascript中返回日期差异的函数?

javascript - 处理从 Django/JQuery 到 javascript Urllib3 的响应对象

javascript - jQuery UI 对话框 - 关闭后不打开

调用 header 时出现 PHP AJAX 12017 错误(位置 :)

javascript - Jquery 选项卡按条件打开

jQuery 在显示/隐藏之间缓动动画

java - JSON-RPC 调用期间的 "arg 1 could not unmarshal"

javascript - 解析Before_Save中的云代码更新计数器变量

javascript - 来自给定选择器的 nodeList 的 Jasmine 测试事件监听器函数

jquery - 同时使用 jquery.js 和 scriptaculous.js 文件?