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

标签 javascript jquery

我有一个使用 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/

相关文章:

javascript - 方法在 ajax 调用完成之前执行

javascript - 在引导模式中打印内容时未显示内容,但打印空白页

javascript - 如何用拆分 (_) 替换文本

jquery - 模态对话框部分位于窗口右侧

javascript - 删除输入类型多个文件的值

JavaScript:true >> 0 = 1 如何实现?

javascript - 我如何错误地导出对象?

Javascript 变量引用

php - Wordpress 根据 wp_enqueue_style 有选择地应用 css 规则

javascript - 无法更改 javascript 中的特定文本颜色