2

我正在开发一个页面上加载了两个版本的 jQuery(版本 1.5.1 和 1.7.2)的项目。1.5 版本是 jsTree 的实现,1.7 版本是最新版本的 jqGrid。

我了解下载两个版本的 jQuery 对性能的影响以及名称冲突的可能性,但是有没有人遇到过这样的情况,并且页面会因此遇到固有的问题。

目前,该站点运行良好,我没有注意到页面上不同版本的 jQuery 可能导致的任何重大问题。但我无法快速删除一个版本或另一个版本,因为它似乎会导致一个或另一个控件(树或网格)崩溃。

我需要删除一个版本的 jQuery。我正在寻找有关页面上两个版本的 jQuery 会出现哪些潜在问题的建议,以及有关如何删除一个引用的建议。而且,如果有人认为拥有两个版本都很好,那么任何关于为什么我应该独自离开的想法。

提前致谢!

4

3 回答 3

3

您绝对可以在一个网页上运行两个版本的 jQuery。唯一的缺点是额外的 http 请求。

但是,让 1.5 代码在 1.7 中运行并不是很困难。摆脱 1.5 并确保 1.7 高于所有需要 jquery 的插件,看看有什么问题。在此处或在 jQuery 论坛中发帖,以获得解决这些小问题的支持。

由于 1.6 中的更改,您将不得不做出的最可能的更改是更改几个.attr()调用。.prop()

编辑:遵循 Robert Harvey 的建议并将 jsTree 升级到最新版本也是明智的。

于 2012-05-21T18:42:53.297 回答
2

除了拥有多个库的开销之外,我不知道您会遇到什么重大问题。如果您确实遇到问题,jQuery.noConflict()可能会帮助您解决它

这个 SO 线程处理您的主题。如何在同一页面上运行不同版本的 jQuery?

于 2012-05-21T18:42:59.690 回答
1

是的,它可以处理两个版本的 jquery .....在第二个版本中,将变量声明为 $.noConflict(true)。并使用声明的变量代替 jquery 代码中使用的 $ 。请检查以下代码:此代码在声明第二个版本的 jquery 后使用:

<script type="text/javascript">

var jQuery_1_9_1 = $.noConflict(true); 功能页面加载(发件人,参数){

        var $ddl = jQuery_1_9_1("select[name$=drpClassCode]");
        var $ddl1 = jQuery_1_9_1("select[name$=drpSubContractors]");
        $ddl.select2();
        $ddl1.select2();

        $ddl.bind("change keyup", function () {
            $ddl.fadeIn("slow");


        });

        $ddl.bind("change keyup", function () {
            $ddl1.fadeIn("slow");


        });
    }

于 2014-02-07T09:47:45.593 回答