检测jQuery插件是否应用于多个元素?

Tom*_*Tom 3 javascript jquery events jquery-plugins jquery-animate

我正在研究一个可以应用于多个元素的jQuery插件.该插件包含一些动画效果,我需要根据插件是否用于多个元素(而不是一个)来管理事件队列.

检测插件是否已应用于单个元素或多个元素的最佳方法是什么?

编辑...

length如果插件传递了多个元素(例如$('.myClass').plugin()),则该属性可以正常工作,但如果在多个单个元素(例如$('#myElem1').plugin()$('#myElem2').plugin())上调用插件,则长度将为每个调用返回一个.

是否有一种方法可以在使用插件时检测多个实例,如第二个示例中所示/

Nic*_*ver 5

this插件里面,这取决于你的风格,指的是jQuery对象,所以你可以检查.length属性,例如:

 jQuery.fn.plugin = function(options) {
   if(this.length > 1) //being applied to multiple elements
 };
Run Code Online (Sandbox Code Playgroud)

对于您的修改:跟踪总数可能是更好的选择,例如:

(function($) {
  $.pluginCount = 0;
  $.fn.plugin = function(options) {
    $.pluginCount += this.length;    //add to total
    if($.pluginCount > 1) //overall being applied to multiple elements
  };
})(jQuery)
Run Code Online (Sandbox Code Playgroud)