我有一个项目,它利用多个需求上下文和动态加载的jQuery版本和插件。( jQuery版本将集中来源,不会内联)。主机和每个上下文的jQuery完整性以及插件隔离都是至关重要的。
我正在为RequireJS编写一个加载程序插件,以处理以下用例:
我有一个带有测试这里的加载程序示例项目。
在最后一个条件下,它失败了,当我使用加载程序进行第二次调用时,它正在吹走以前的版本。
我还使用eval将加载插件中的$引用隔离到本地加载的jQuery版本范围。任何关于更好的方法的想法都将不胜感激。
如果有更简单/更干净的解决方案,希望保持简单(愚蠢)。
谢谢,非常感谢。
发布于 2013-03-03 23:46:37
我还得用插件来做这件事。你应该去看看http://api.jquery.com/jQuery.noConflict/。举一个例子:
jQueryLocal = jQuery.noConflict(true);但是,您当然应该尽量避免加载多个jQueries。例如,您可以检查是否已经加载了足够的版本(在我的示例中,我在加载任何内容之前检查了1.9+是否可用,如果可以,则将局部变量设置为对现有全局jQuery对象的简单引用,但随后我没有使用插件。
您可以使用以下方法检查该版本:
var jQueryLocal;
var versions = (jQuery && /^([0-9]+)\.([0-9]+)\./.exec( jQuery.fn.jquery )) || [0,0];
if( versions[0] > 1 || versions[1] >= 9 ) {
jQueryLocal = jQuery;
} else {
// load script with whatever you're doing. If it's asynchronous, set callbacks etc.
jQueryLocal = jQuery.noConflict(true);
}https://stackoverflow.com/questions/13080463
复制相似问题