我有一个使用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;。
答案 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();