多个版本的 jQuery [重复]
Posted
技术标签:
【中文标题】多个版本的 jQuery [重复]【英文标题】:Multiple versions of jQuery [duplicate] 【发布时间】:2014-08-11 23:28:49 【问题描述】:我正在开发允许第三方上传 html sn-ps 的服务。在其中一些 sn-ps 中可能有指向 jQuery、SizzleJS... 库和需要这些库的特定版本的 javascript 代码的链接。该服务显然需要它自己的 jQuery 版本。
有什么方法可以加载多个版本的 jQuery(或只是 SizzleJS),并且我自己的代码只引用我的 jQuery 版本,而第三方引用他们可能链接到的任何版本?也许使用不同的命名空间?我该怎么做?
我希望我的问题足够清楚。
【问题讨论】:
搜索noConflict()
。
我见过noConflict,但我不知道如何实现这个
【参考方案1】:
您有一个noConflict()
电话:
如果由于某种原因加载了两个版本的 jQuery(不是 推荐),从第二个版本调用
$.noConflict( true )
将全局作用域的 jQuery 变量返回到第一个变量 版本。
最好的实现之一可以在下面的 sn-p 中显示:
var j = jQuery.noConflict();
// Do something with jQuery
j( "div p" ).hide();
// Do something with another library's $()
// This other can library be an older (or newer) jQuery as well
$( "content" ).style.display = "none";
【讨论】:
明确一点:假设我的库是第一个,我执行 var j = jQuery.noConflict();在加载第二个库之后,我的库是通过“j”而不是通常的“$”引用的,对吗? 如果先加载自己的库,然后加载jQuery,然后执行j = $.noConflict();
,那么j
指的是最后加载的库(本例中为jQuery)。
我可以加载我的库吗,执行 j = $.noConflict();然后是第二个库,所以“j”会引用第一个库?
@AdrienHingert noConflict
是一个 jQuery 功能。您也不能将它与所有其他库一起使用。【参考方案2】:
像Codepen 这样的网站通过将用户的代码(包括用户的 jQuery)放在来自不同域来源的 iframe 中来做到这一点。
【讨论】:
不幸的是,这对我来说是不可能的 那么noConflict()
可能是您的最佳选择。以上是关于多个版本的 jQuery [重复]的主要内容,如果未能解决你的问题,请参考以下文章