我正在开发一个项目,它在页面上加载了两个版本的jQuery(版本1.5.1和1.7.2)。 1.5版本用于jsTree的实现,1.7版本用于最新版本的jqGrid。
我理解下载两个版本的jQuery的性能影响以及名称冲突的可能性,但是有没有人遇到这样的情况,并且是否存在页面因此而遇到的固有问题。
目前,该网站运行良好,我没有注意到页面上不同版本的jQuery可能导致的任何重大问题。但我不能快速删除一个版本或另一个版本,因为它似乎导致一个或另一个控件(树或网格)崩溃。
我需要删除一个版本的jQuery。我正在寻找有关在页面上使用两个版本的jQuery可能遇到的潜在问题的建议以及如何去除一个引用的建议。而且,如果有人认为这两个版本都没问题,那么任何关于为什么我应该只留下足够好的想法。
提前致谢!
答案 0 :(得分:3)
你绝对可以在一个网页上运行两个版本的jQuery。唯一的缺点是额外的http请求。
然而,在1.7中运行1.5代码并不是很困难。摆脱1.5,并确保1.7高于所有需要jquery的插件,看看有什么中断。发布在这里或在jQuery论坛中获取修复这些小问题的支持。
由于1.6的变化,您必须进行的最有可能的更改是将.attr()
次调用更改为.prop()
。
编辑: 遵循Robert Harvey的建议并将jsTree升级到最新版本也是明智的。
答案 1 :(得分:2)
除了拥有多个库的开销之外,我还没有发现你遇到的任何重大问题。如果您遇到问题,jQuery.noConflict()可能会帮助您解决问题
此SO主题处理您的主题。 How do I run different versions of jQuery on the same page?
答案 2 :(得分:1)
是的它可以处理两个版本的jquery .....在第二个版本中声明一个变量为$ .noConflict(true)。并使用声明的变量代替jquery代码中使用的$。 请检查以下代码: 在声明jquery的第二个版本之后使用此代码:
<script type="text/javascript">
var jQuery_1_9_1 = $ .noConflict(true); function pageLoad(sender,args){
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");
});
}