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

标签 javascript jquery events jquery-plugins jquery-animate

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

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

编辑...

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

有没有办法在第二个例子中使用插件时检测多个实例/

最佳答案

this 在插件中,根据你的风格,引用 jQuery 对象,所以你可以检查 the .length property ,例如:

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

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

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

关于javascript - 检测 jQuery 插件是否应用于多个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3769040/

相关文章:

javascript - 引用不同 SVG 文档的样式和脚本 SVG 文档

javascript - 如何将文本自动换行到给定的行长度(以字符为单位)?

javascript - 使用 jQuery 将 CSS 代码添加到 *

jquery - 在导航栏中定位的用户名在 IE 中无法正确显示

javascript - 动态加载 <ul> 时以 "this"为目标

javascript - 更新: How to find event listeners on a DOM node in prototype?

javascript - JQuery UI 自动完成小部件消失

php - 将 json 从 php 发送到 javascript

multithreading - F# 事件的线程安全引发

laravel - "PhpAmqpLib\Exception\AMQPRuntimeException: Channel connection is closed"Lumen队列错误