我写了一个jQuery-Plugin,我想用它作为Object。所以我在插件中声明了一些函数,我想从任何其他位置调用它,就像一个带方法的对象。这甚至可能吗?
为了简单起见:
(function( $ ){
$.fn.myPlugin = function(){
// Here I want methods...
function foo()
{
// do something...
}
}
})(jQuery);
然后我想从插件外部调用内部函数,如:
$.myPlugin.foo();
但这似乎不起作用。甚至可能吗?或者还有其他解决方案吗?我不想为此目的使用正常无关的jQuery-Class。因为这个插件应该与其他一些jQuery-Plugins一起使用。
谢谢
答案 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
将函数的名称作为其第一个参数,并将所有剩余的参数传递给正确的函数。示例代码有点冗长,所以请到该站点查看它。