2

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

myVar = jQuery.noConflict();

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

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

        // Code here

    }
}(myVar));

似乎不起作用。我收到一个错误“TypeError:$ 为空”

4

3 回答 3

1

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

基本上,您需要确保在加载所需的 jQuery 版本后运行此代码:

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

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

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

于 2013-02-05T20:14:26.797 回答
1

当前版本的 jQuery 可通过jQuery().version

于 2013-02-05T20:15:02.647 回答
0

只需检查 jQuery 的版本作为您做的第一件事。看这里:

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

if($.fn.jquery != 1.xxx ) { ..... }
于 2013-02-05T20:15:59.143 回答