在创建我的第一个 jQuery 插件时,我想在插件代码中使用仅限于最外层选择器的选择器。 this.selector 是完美的。然而,它正在被带走。 :/因此,我想使用最佳实践,而不是对折旧的属性(property)进行编码。
我想确保我只影响选择器中的项目。现在我的插件有疯狂的溢出。我的 var panelCount 当然正在计算整个页面隐藏和循环的次数超过应有的次数等。
剪...
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...
})
http://jsfiddle.net/y9pEV/8/
现在,如果您有两个
DisplayWall
元素,它们将独立工作。别忘了在 SetDisplay 里面,
this
是 Window。关于jquery - 什么取代了弃用的属性 this.selector,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21238281/