在插件中调用jQuery插件公共函数

时间:2013-01-10 22:25:55

标签: javascript jquery

我知道,网上有很多例子,但是对于初学者来说,找到真正的一个例子都很难。所以我想用公共方法创建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()中注释掉了因为它不起作用。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

在插件中创建可公开访问的方法的一种方法是使用jQuery UI widget factory。这是jQuery UI用于所有受支持的UI小部件的框架。一个简单的例子如下:

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

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

    },

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

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

$w.mywidget('publicFunction');