在创建我的第一个 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 .
最佳答案
对 this.selector
的替换是不依赖于正在使用的选择器,而是使用选定的元素。因此,您应该重新实现 this.each()
,然后根据实例正确过滤您的选择。
this.each(function () {
var $this = $(this);
$('.next',this).click(function () {
$('.previous',this)
$("." + settings.panelClass,this)
//etc...
})
现在,如果您有两个 DisplayWall
元素,它们将独立工作。
不要忘记,在 SetDisplay 内部,this
是 Window。
关于jquery - 什么取代了已弃用的属性 this.selector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21238281/