jQuery插件有自己的API

时间:2009-11-03 13:26:27

标签: jquery jquery-plugins

我正在编写我的第一个jQuery插件,我希望能够这样做:

var myPluginVar = $("someElement").myPlugin();

myPluginVar.customFunctionCallWithinPlugin();

知道如何去做吗?

修改

请访问http://flowplayer.org/tools/using.html#api了解我的意思

2 个答案:

答案 0 :(得分:1)

您可以使用类似于以下内容的方式实现此设计。我已将插件定义包装在匿名函数中,以防止PluginObj污染全局命名空间。

(function($) {
    function PluginObj() {
        // construct stuff
    }

    PluginObj.prototype.customFunctionCallWithinPlugin = function() {
        // do stuff
    };

    $.fn.myPlugin = function() {
        return new PluginObj();
    };
})(jQuery);

jQuery方法使用您定义的方法返回一个新对象。这是一个jQuery插件的非标准设计,所以如果你打算分发它,请确保它是完整的文档。

答案 1 :(得分:1)

您可能必须返回插件的实例而不是“this”。

e.g。

(function(){
    // private constructor that is only accessable by your plugin.
    function _Plugin(elements, args){
        // do stuff
    }
    _Plugin.prototype.customFunctionCallWithinPlugin = function(){
        // do more stuff
    };
    $.fn.Plugin = function(args){
        return new _Plugin(this, args);
    };
})();
编辑:亚历克斯打败了我。