如何有效地使用2个版本的JQuery?

时间:2015-10-22 09:53:03

标签: javascript jquery

我有一个使用JQuery 1.6的网络应用程序,但这无法更改。我有一个D3查看器,需要至少1.8版本。我找到了一个解决方案如下:

<script src='link to jquery 1.10'  type="text/javascript"></script>
<script src='link to jquery custom 1.10'  type="text/javascript"></script>

var jQuery_1_8_2= $.noConflict(true);

那么在哪里使用&#39; $&#39;,我现在使用&#39; jQuery_1_8_2&#39;。

这很好用,但我有插件JStree。

我需要的是一个函数,基本上当查看器运行时,它会将JQuery的每次使用都更改为更新的版本。所以我没有必要进入插件的源代码并更改每个&#39; $&#39;字符到&#39; jQuery_1_8_2&#39;。

2 个答案:

答案 0 :(得分:3)

您可以按照以下方式订购JS文件:当JSTree加载时,只有一个版本的JQuery可用,它只获取一次JQuery对象,因此更改全局$ \ {{的值没有问题1}}加载后。

jQuery

您可以看到这种方法正在发挥作用 http://jsfiddle.net/npd3kc5t/

这是有效的,因为JSTree遵循protecting alias and adding scope的jQuery建议。

换句话说,当插件加载时,它会获取全局<script src="jquery_for_jstree.js"></script> <script src="jstree.js"></script> <script> var jsTreeJquery = $.noConflict(true); </script> <script src="another_jQuery.js"></script> <script> jsTreeJquery ("...").jstree(...) </script> 引用,并仅为它创建一个局部变量jQuery,所以在插件加载全局{{}后你做什么并不重要1}} \ $

答案 1 :(得分:0)

使用jquery无冲突

//new version 
var newJquery = jQuery.noConflict();
//call it like this
newJquery('#example').on('click')......

对于旧的人做同样的事情

var oldJquery = jQuery.noConflict();