1

答えを探してみましたが、最初に説明せずに言葉にする方法がわかりません。とにかく、これは私がプラグインを呼び出す方法の例です:

$('body').myPlugin({container: 'exampleA', amount:4});

問題は、「ボディ」が役に立たないように見える場所です。そこに任意の要素を配置でき、正常に機能します。みたいなことを言ったほうが……。

$('.exampleA').myPlugin({amount:4});

...そして、コンテナに exampleA を使用するようにプラグインに指示します。それが実際に可能であると考えるのは正しいですか?これを実現するためにプラグインを変更するにはどうすればよいですか?

これが私のプラグインの例です:

(function($){
 $.fn.extend({
     myPlugin: function(options) {
        var defaults = {
            container : 'list_container',
            amount : 2
        }
        var options =  $.extend(defaults, options);
        return this.each(function() {
            var o = options;
            //Start
            $('.'+o.container+' ul').each(function(){
               //DO STUFF HERE....
            });
            //End
        });
    }
});
})(jQuery);

必要に応じて実際のコード/プラグインを投稿できます。簡単な例を投稿すると、何をしようとしているのかを説明しやすくなると思いました。

4

3 に答える 3

0
(function($){
 $.fn.extend({
 myPlugin: function(options) {
    var defaults = {
        container : 'list_container',
        amount : 2
    }
    var options =  $.extend(defaults, options);
    return this.each(function() {
        var o = options;
        //Start
        $(this).children('ul').each(function(){
           //DO STUFF HERE....
        });
        //End
    });
}
});
})(jQuery);
于 2013-06-14T15:59:52.143 に答える
0

thisあなたのプラグインにはjQueryの選択があります。このコレクションで使用する場合はfind、選択した要素内のコンテナーにスコープを設定する必要があります。

$.fn.extend({
    myPlugin: function(options) {
        var defaults = {
            container : 'list_container',
            amount : 2
        }
        var options =  $.extend(defaults, options);
        this.find('.' + options.container + ' ul').each(function(){
           //DO STUFF HERE....
        });
    });
}
于 2013-06-14T16:00:19.663 に答える
0
$.fn.myPlugin = function (options) {
    var defaults = {
        amount: 2
    }
    var options = $.extend(defaults, options);
    return this.each(function () {
        $('ul', this).each(function () {
            //DO STUFF
        });
    });
}

フィドル

于 2013-06-14T16:00:39.203 に答える