jQuery:如何在第三方脚本加载不同版本的 jQuery 之前保存我的 jQuery 版本?
Posted
技术标签:
【中文标题】jQuery:如何在第三方脚本加载不同版本的 jQuery 之前保存我的 jQuery 版本?【英文标题】:jQuery: How to save my version of jQuery before third party script loads different version of jQuery? 【发布时间】:2011-03-01 23:08:09 【问题描述】:类似问题供参考: How do I run different versions of jQuery on the same page?
我有自己的 jQuery(1.4.2) 版本,定义了各种自定义函数。这个版本的 jQuery 是在第三方脚本之前加载的,第三方脚本会加载它自己的 jQuery 版本(1.4.3),当这个脚本被加载时,它会以某种方式破坏我拥有的所有自定义函数。第三方脚本在 jQuery 加载后使用 noconflict。由于没有冲突代码,我认为如果我可以先加载第三方脚本,问题就会得到解决,但是我的环境无法保证这一点,但是我可以在加载之前和/或之后运行一些自定义 javascript如果我动态加载脚本。
我想知道是否有某种方法可以保存/恢复/保护我自己的 jQuery 版本,以便在第三方脚本运行后可以访问自定义方法?
【问题讨论】:
【参考方案1】:如果您可以在加载此脚本之前和之后运行自定义代码,我相信这会做到:
var $myJQ = jQuery.noConflict();
// Load the other script. It should move itself away from the $ and jQuery variables
// if it properly calls noConflict.
var $ = $myJQ;
我相信会让你达到你所追求的目标。
【讨论】:
这就是我的想法,但它是否需要更像:jQuery = window.jQuery = $myJQ; $ = window.$ = jQuery;
才能更普遍适用?
@Muhd - 是的,如果您的脚本需要它们,您还可以设置 window.jQuery 和 window.$ 变量。我不知道我是否认为它是必需的,但这将更多地取决于使用它的插件/脚本的结构。没有要求为 jQuery 定义 window.jQuery 来运行 - 否则 var $myJQ = jQuery.noConflict()
将无法实现任何目标。【参考方案2】:
来自http://blog.nemikor.com/2009/10/03/using-multiple-versions-of-jquery/
<!-- load jQuery 1.1.3 -->
<script type="text/javascript" src="http://code.jquery.com/jquery-1.1.3.js"></script>
<script type="text/javascript" src="jquery.dimensions.min.js"></script>
<!-- revert global jQuery and $ variables and store jQuery in a new variable -->
<script type="text/javascript">
var jQuery_1_1_3 = $.noConflict(true);
</script>
<!-- load jQuery 1.3.2 -->
<script type="text/javascript" src="http://code.jquery.com/jquery-1.3.2.js"></script>
<!-- revert global jQuery and $ variables and store jQuery in a new variable -->
<script type="text/javascript">
var jQuery_1_3_2 = $.noConflict(true);
</script>
然后
jQuery_1_1_3('<button>Use jQuery 1.1.3</button>')
.click(function()
alert('Top: ' + jQuery_1_1_3(this).offset().top + '\n' +
'jQuery: ' + jQuery_1_1_3.fn.jquery);
)
.appendTo('body');
【讨论】:
以上是关于jQuery:如何在第三方脚本加载不同版本的 jQuery 之前保存我的 jQuery 版本?的主要内容,如果未能解决你的问题,请参考以下文章