如何避免2个插件之间的jQuery冲突

时间:2015-05-08 06:22:14

标签: jquery twitter-bootstrap autocomplete

我有一个自动完成插件(jquery.autocomplete.js),我正在使用jQuery轮播,而且我正在使用一些bootstrap组件。但是当我添加bootstrap.min.jsjquery-1.11.3.min.js时,自动完成插件无效。我怎样才能让它发挥作用。?

自动填充工作正常jQuery 1.2.6 - New Wave Javascript

1 个答案:

答案 0 :(得分:2)

当你加载jQuery.x.x.js时,它将覆盖现有的$和jQuery变量。但它保留了它们的备份副本(在_$_jQuery中)。 调用noConflict(true)可以恢复js包含之前的情况!

noConflict()为您提供正在运行的实例(上次加载的实例),因此您可以通过这种方式使用您的版本

恢复:

  • 原始页面加载了他的“jquery.versionX.js”
  • $和jQuery属于versionX
  • 你打电话给你的“jquery.versionY.js”
  • 现在$和jQuery属于versionY,加上_ $和_jQuery属于versionX
  • var my_jQuery = jQuery.noConflict(true);
  • 现在$jQuery属于版本X,_$_jQuery可能为空,my_jQuery为版本

如果您想恢复到特定版本,请在HTML中添加以下JavaScript代码。

<script type="text/javascript">
    if (jQuery.fn.jquery != "1.11.0")
        var jQuery_1_11_0 = $.noConflict(true);
</script>

https://stackoverflow.com/a/30101470/2025923