我不能使用多个jquery版本

时间:2016-11-17 14:18:24

标签: javascript jquery

我想在一个页面上使用两个不同的jquery版本,这是我的代码:

    <!----- mobile menu Starts ----->
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <link rel="stylesheet" type="text/css" href="style/mobile_menu.css">
    <script type="text/javascript">
        var jQuery_1_11_0 = $.noConflict(true);
    </script>
    <!----- mobile menu  Ended ----->
    <!------ The Post slide starts ------>
    <link rel="stylesheet" type="text/css" href="./style/post_slide_style.css">
    <script src="js/jquery.v1.5.1.min.js"></script>
    <script type="text/javascript">
        var jQuery_1_5_1 = $.noConflict(true);
    </script>
    <script type="text/javascript" src="./js/jquery.colorbox.js"></script>
    <script>
        jQuery_1_5_1(document).ready(function(){
         jQuery_1_5_1("a.gallery").colorbox({rel:'gallery'});
         jQuery_1_5_1("a.dbox").colorbox({iframe:true, width:"480", height:"580"});
         });
    </script>
    <!------ The Post slide Ended ------->

移动菜单正常运行,但邮政幻灯片无法帮助

工作

2 个答案:

答案 0 :(得分:1)

你不应该有2个不同的JQuery版本。

您应该使用最新版本的JQuery。如果您需要支持一些旧的JQuery API,则需要使用jQuery Migrate Plugin

来自文档:

  

我们已经创建了jQuery Migrate插件来简化转换   来自旧版本的jQuery。该插件可恢复已弃用的功能   和行为,以便旧代码仍然可以在较新的代码上正常运行   jQuery的版本。使用未压缩的开发版本   诊断兼容性问题,它会产生警告   您可以用来识别和修复问题的控制台。使用   压缩生产版本,只需修复兼容性问题   没有生成控制台警告。

     

Migrate有两个版本。

     

第一个将帮助您更新您的   1.9之前的jQuery代码到jQuery 1.9高达3.0。你可以得到那个版本   这里:

     

第二个版本可以帮助您更新代码以在jQuery 3.0或更高版本上运行   更高,一旦你使用Migrate 1.x并升级到jQuery 1.9或   更高:

答案 1 :(得分:0)

主要问题是您将true传递给noConflict两个电话。

  

<强> jQuery.noConflict( [removeAll ] )
   removeAll
  类型:布尔
  一个布尔值,指示是否从全局范围中删除所有jQuery变量(包括 jQuery 本身)。

因此,在这些调用之后,您的代码无法访问$jQuery,因此您应该在控制台中收到一些错误。

如果您想使用第二版jquery,请从true来电中删除noConflict

但是,一般情况下,如果必须在同一页面中使用两个版本的jQuery,这是一个不好的迹象。

相关问题