如何解决两个jquery冲突特别是自动完成和fullcalendar js

时间:2015-06-13 11:16:40

标签: jquery html


我想在同一页面/标题页面上包含两个jquery文件(一个用于自动完成ajax,另一个用于完整日历)但它们会相互冲突。我怎么能解决这个问题,我已经尝试了noConflict的解决方案,但没有用,请帮助我。
以下是我的代码,包括js文件:

$http

其中第一个文件用于自动完成下拉列表,其他文件用于完整日历事件。

1 个答案:

答案 0 :(得分:1)

编辑:对不起,我刚看到你在发帖后尝试了noConflict。我认为它不起作用的唯一原因是你不想更新其中一个文件中的$ / Jquery名称。您可以通过查找和替换非常轻松地完成此操作。

我建议使用jQuery.noConflict(true)从全局范围中删除JQuery对象并将其分配给您选择的对象名称,前提是您不需要使用精确的对象名称:JQuery / $ to访问两个版本的JQuery对象。您可以在包含之后为其中一个版本执行此操作。

例如:jq121 = jQuery.noConflict(true);允许您在全局范围内以jq121的身份访问1.2.1版。如果在包含1.2.1之后调用,这将释放$和JQuery以引用您的其他版本。

他们在这里有一些例子:

https://api.jquery.com/jquery.noconflict/

编辑:我把一个快速的例子放在一起。使用以下代码,您可以使用jq214访问较新的版本,使用默认的$ alias访问旧版本。

<html>
    <head>
      <script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
      <script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
    </head>
  <body>
    <script>

        $(document).ready(function(){
        
          jq214 = jQuery.noConflict( true );
          jq214(document.body).append("jq214 object name is version " + jq214.fn.jquery);
          $(document.body).append("<br/>default $ alias is version " + $.fn.jquery);
        
        });
      
    </script>
  </body>
</html>

我应该提一下,尽管JQuery团队提到(正如其他人所做的那样),如果可能的话,应该避免包括两个版本。