0

ウェブ上にはかなりの数の例があることは知っていますが、その中から実際の例を見つけるのは初心者には困難です。したがって、パブリック メソッドを使用して jQuery プラグインを作成したいと考えています。コード例:

(function($) {
    $.fn.peel = function(options) {
        var defaults = {
        };

        var settings = $.extend({},defaults, options);

        this.public = function() {
            alert("public");
        };

        var private = function() {
            alert("private");
        }

        return this.each(function() {
            //this.public();
            private();
        });
    };
})(jQuery);

私が見つけたように、これはパブリック関数を作成する方法であり、次のように呼び出すことができます:

var peel = $('img').peel();
peel.public();

これまでのところ、期待どおりに動作します - public() を呼び出すことができます。しかし、プラグイン内でその関数を呼び出したい場合はどうすればよいでしょうか? this.each() は機能しないため、コメントアウトしました。どうすればそれを達成できますか?

4

1 に答える 1

1

プラグイン内でパブリックにアクセス可能なメソッドを作成する 1 つの方法は、jQuery UI ウィジェット factoryを使用することです。これは、サポートされているすべての UI ウィジェットに対して jQuery UI が使用するフレームワークです。簡単な例は次のようになります。

(function( $ ) {
    $.widget( "something.mywidget", {

    // Set up the widget
    _create: function() {

    },

    publicFunction: function(){
        //...
    }
  });
}( jQuery ) );

var $w = $('#someelement').mywidget();

$w.mywidget('publicFunction');
于 2013-01-10T22:37:04.550 に答える