我正在开发一个可以应用于多个元素的 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/