我确信这是不言而喻的,但理想情况下更新站点以使用单个最新版本的 jQuery,这样就可以解决这个问题。
但是,您的问题的答案是否定的,您不能复制它们 - 至少,不能使用正确编写的插件。正确编写的插件的高级结构是这样的:
(function($) {
// Do things with $ here, such as registering a plugin function:
$.fn.thePlugin = function() {
// ...and presumably here as well...
};
})(jQuery);
这意味着插件在加载插件时引用了控制jQuery符号的jQuery版本。
稍后,在加载不同版本的 jQuery 之后,您可能会想这样做:
jQuery.fn.thePlugin = oldJQuery.fn.thePlugin;
...但是您会在 jQuery 版本之间产生可怕的串扰:该插件将由较新的 jQuery 调用,但在执行此操作时使用较旧的 jQuery。
现在,我上面的greenPlugin 发生了这种情况
因此,在您可以清理之前,您必须重复加载插件:
<script src="jquery-1.7.1.js"></script>
<script src="this-plugin.js"></script>
<script src="that-plugin.js"></script>
<script src="the-other-plugin.js"></script>
<script>
var jq171 = jQuery.noConflict(); // With or without `true`
</script>
<script src="jquery-1.9.1.js"></script>
<script src="this-plugin.js"></script>
<script src="that-plugin.js"></script>
<script src="the-other-plugin.js"></script>
...这显然是丑陋的。 :-) 但是脚本可能至少第二次来自缓存。这意味着通过jq171 访问的jQuery 版本和通过jQuery/$ 访问的jQuery 版本都具有所有三个插件。