【发布时间】:2014-02-09 21:00:41
【问题描述】:
在创建我的第一个 jQuery 插件时,我想在插件代码中使用仅限于最外层选择器的选择器。 this.selector 非常完美。然而,它正在被拿走。 :/ 因此,我不想编写折旧的属性,而是要使用最佳实践。
我想确保我只影响选择器中的项目。现在我的插件已经疯狂溢出了。我的 var panelCount 当然是计算整个页面隐藏和循环的次数超过了应该的次数等等。
剪辑...
var defaults = { displayCount: 2, startIndex: 0, panelClass: "panels", hoverClass: "hover", rounded: false }, settings = $.extend({}, defaults, options);
var panelCount = $("." + settings.panelClass).length; //needs restraints
剪辑
我使用以下调用来尝试确保链接有效。
$('.DisplayWall').metro({displayCount:2,hoverClass:"hover"}).css("color","red");
我有一个fiddle here。
【问题讨论】:
-
您可以将选择器作为参数传递给插件。这是来自文档的建议:api.jquery.com/selector
-
为什么需要选择器?您可以访问元素本身。使用选择器会严重限制插件的功能。如果用在一个有类的元素上,一下子就只能用在那个元素上,其他的实例就不能作为单独的实例了。
-
或者为什么不试试
$('.next', this)之类的? -
我不明白?难道不只是
$("." + settings.panelClass, this)将选择限制为传递给插件的元素吗?
标签: jquery jquery-plugins jquery-selectors