我有一个使用 JQuery 1.6 的网络应用程序,无法更改。我有一个至少需要 1.8 版本的 D3 查看器。我找到了如下解决方案:
<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);
那么在哪里使用“$”,我现在使用“jQuery_1_8_2”。
这很好用,但我有插件 JStree。
我需要的是一个功能,基本上当查看器运行时,它会将 JQuery 的每次使用都更改为较新的版本。所以我不必进入插件的源代码并将每个“$”字符更改为“jQuery_1_8_2”。
最佳答案
您可以这样排序 JS 文件,当 JSTree 加载时只有一个版本的 JQuery 可用,它只获取一次 JQuery 对象,因此更改全局 $
的值没有问题\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>
你可以看到这种方法在 http://jsfiddle.net/npd3kc5t/
这是有效的,因为 JSTree 遵循 protecting alias and adding scope 的 jQuery 建议.
换句话说,当插件加载时,它获取全局 jQuery
引用并仅为它创建一个局部变量 $
,所以之后你做什么并不重要加载了全局 $
\jQuery
的插件。
关于javascript - 如何有效地使用 2 个版本的 JQuery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33278178/