调用jQuery-Plugin函数的内部函数?

时间:2010-12-27 07:49:49

标签: javascript jquery plugins

我写了一个jQuery-Plugin,我想用它作为Object。所以我在插件中声明了一些函数,我想从任何其他位置调用它,就像一个带方法的对象。这甚至可能吗?

为了简单起见:

(function( $ ){
    $.fn.myPlugin = function(){
        // Here I want methods...
        function foo()
        {
             // do something...
        }
    }
})(jQuery);

然后我想从插件外部调用内部函数,如:

$.myPlugin.foo();

但这似乎不起作用。甚至可能吗?或者还有其他解决方案吗?我不想为此目的使用正常无关的jQuery-Class。因为这个插件应该与其他一些jQuery-Plugins一起使用。

谢谢

3 个答案:

答案 0 :(得分:2)

您可以使用$.fn并重新编写代码,如下所示:

(function( $ ){
    $.fn.myPlugin = function(){
        // Here I want methods...
        $.fn.myPlugin.foo = function()
        {
             // do something...
        }
    }
})(jQuery);

你可以这样称呼:

myPlugin().foo;

答案 1 :(得分:1)

这样:

(function( $ ){
    $.fn.myPlugin = (function(){
        // Here I want methods...
        this.foo = function()
        {
             // do something...
        }
    })();
})(jQuery);

答案 2 :(得分:1)

jQuery docs site recommends a good way of doing it:make $.fn.myPlugin将函数的名称作为其第一个参数,并将所有剩余的参数传递给正确的函数。示例代码有点冗长,所以请到该站点查看它。