什么取代了已弃用的属性this.selector

时间:2014-01-20 15:49:11

标签: jquery jquery-plugins jquery-selectors

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

1 个答案:

答案 0 :(得分:2)

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。