0

関数でjQueryのプラグインオブジェクトにアクセスすることは可能eachですか?

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

の中に入るときの文脈.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));
});

要点がわかりませんでしたが、この add は何をするのですか?

于 2013-01-27T16:43:56.823 に答える