我正在研究一个JQuery插件。我想定义一个静态可见的方法,这样我就可以更容易地访问某些部分。例如,在C#中,我会这样做:
public class MyPlugin()
{
public static string DoSomething(object parameter)
{
return DoImplementation();
}
}
但是,我无法弄清楚如何在JQuery插件中执行相同类型的操作。目前,我有以下内容:
(function ($) {
$.myPlugin = function (element, options) {
var defaults = {
average: 0
}
myPlugin.init = function () {
myPlugin.settings = $.extend({}, defaults, options);
}
myPlugin.doSomething = function (parameter) {
// Implementation goes here
}
}
})(jQuery);
如何从JQuery插件创建静态可见的方法?
谢谢!
答案 0 :(得分:8)
$.myPlugin = { };
$.myPlugin.staticMethod = function(...) { ... };
显然,这不能进入实际的myPlugin
函数,因为该函数是per-“instance”(实际上是每次调用)。
需要在myPlugin
(原型)上定义实际的$.fn
方法。
答案 1 :(得分:4)
你应该在$ .fn而不是$上定义你的插件。见http://docs.jquery.com/Plugins/Authoring。 然后在$ .fn.myPlugin.doSomething上定义一个方法。