在创建我的第一个 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/

10-16 19:57