0

是否可以在each-function 中访问 jQuery 的插件对象?

var pluginName = 'pluginName',
    Plugin = function(elem){
        elem.add = function () {
            console.log('foo');
            return this;
        };
    };

$.fn[pluginName] = function () {

    // this works
    new Plugin(this);
    return this;

    // this doesn't!
    // return this.each(function(){
    //     new Plugin($(this));
    // });
};

var plugin = $('.foo').pluginName();
plugin.add();
4

2 回答 2

0

当您进入 a 时.each()的上下文与外部的上下文不同。您可以使用如下变量维护上下文:

var _this = this;
return this.each(function(){
     new Plugin($(_this));
});
于 2013-01-27T16:18:46.897 回答
0

Mash 几乎是正确的,但正确的代码是,

var _this = this;
return _this.each(function(){
     console.log($(this));
     new Plugin($(this));
});

虽然我不明白这一点,但这个添加应该做什么?

于 2013-01-27T16:43:56.823 回答