当存在多个jquery实例时,如何使插件与特定jquery一起工作?

当存在多个jquery实例时,如何使插件与特定jquery一起工作?,jquery,jquery-plugins,plugins,Jquery,Jquery Plugins,Plugins,好吧,我想我最好把这件事弄清楚一点,让它更清楚问题是什么。我有一个脚本,可能在已经加载jQuery的网站上运行,但可能是错误的版本。因此,我加载jQuery的正确版本,然后调用以下命令: myVar = jQuery.noConflict(); 当我编写一个函数专门使用我的jQuery附带版本时,应该如何构造它 (function($) { $.myPlugin = function(options) { // Code here } }(myVar));

好吧,我想我最好把这件事弄清楚一点,让它更清楚问题是什么。我有一个脚本,可能在已经加载jQuery的网站上运行,但可能是错误的版本。因此,我加载jQuery的正确版本,然后调用以下命令:

myVar = jQuery.noConflict();
当我编写一个函数专门使用我的jQuery附带版本时,应该如何构造它

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

        // Code here

    }
}(myVar));

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

加载您的jQuery版本,初始化插件,然后使用恢复到以前的jQuery版本

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

(function($) {
   //...
}(jQuery));
使用传递jQuery作为参数的原因是,即使全局
jQuery
$
已更改,插件也始终使用正确版本的jQuery。本地函数参数
$
将始终引用第一次执行IIFE时出现的jQuery版本


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

当前版本的jquery可与
jquery()一起使用。版本

只需首先检查jquery的版本即可。请看这里:


活动呢?如果插件捕捉到浏览器事件,那么jQuery将在启动插件时使用全局事件还是特定事件?@Nir它将用于创建事件侦听器/本地范围中的事件侦听器。因此,这将不是全球性的,而是具体的。
if($.fn.jquery != 1.xxx ) { ..... }