当有多个jquery实例时,如何使我的插件使用特定的jquery?

时间:2013-02-05 20:11:59

标签: jquery jquery-plugins plugins

好的,我认为我最好清理一下,以便更清楚地说明问题所在。我有一个脚本可能在已加载jQuery的网站上运行,但可能是错误的版本。所以我加载了正确版本的jQuery,然后调用以下内容:

myVar = jQuery.noConflict();

当我去编写一个专门使用我所包含的jQuery版本的函数时,应该如何构造它?

(function($) {
     $.myPlugin = function(options) {

        // Code here

    }
}(myVar));

似乎不起作用。我收到错误“TypeError:$ is null”

3 个答案:

答案 0 :(得分:1)

加载您的jQuery版本,初始化您的插件,然后使用$.noConflict(true)恢复到以前版本的jQuery。

基本上你需要确保在你需要的jQuery版本加载之后运行这段代码:

(function($) {
   //...
}(jQuery));

使用传递jQuery作为参数的原因是,即使全局jQuery$已更改,您的插件也始终使用正确版本的jQuery。本地函数参数$将始终引用IIFE首次执行时出现的jQuery版本。

如果您想检查可用版本是否与您需要的版本兼容,请使用$().jquery来确定版本号。

答案 1 :(得分:1)

当前版本的jQuery可以使用jQuery().version

答案 2 :(得分:0)

只需检查jQuery的版本即可。见这里:

http://api.jquery.com/jquery-2/

if($.fn.jquery != 1.xxx ) { ..... }