我需要将插件功能附加到页面上的多个元素。
对于单个元素,该函数按以下方式附加(limiter
是插件函数):
if (fullDescription.length) {
fullDescription.limiter(1000, fullDescriptionCounter);
}
我需要将此插件附加到页面上的多个元素。为了实现它,我想到了以下代码:
if (categoryDescription.length) {
$.each(categoryDescription, function(index, value) {
value.limiter(180, categoryDescriptionCounter);
});
}
不幸的是,
limiter
无法从作为$.each()
迭代器回调的匿名函数中访问。我有什么选择来完成工作?如何将
limiter
绑定到匿名函数? 最佳答案
使用this
:
$.each(categoryDescription, function(index, value) {
$(this).limiter(180, categoryDescriptionCounter);
});
请注意,任何编写良好的插件都应已处理多个实例:
例如
categoryDescription.limiter(180, categoryDescriptionCounter);
另请注意:对于任何自重插件,也不需要检查长度。 jQuery对象允许在零长度集合上运行方法。他们只是什么都不做:)