如何为JQuery插件创建静态方法

时间:2012-02-20 15:57:26

标签: c# jquery

我正在研究一个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插件创建静态可见的方法?

谢谢!

2 个答案:

答案 0 :(得分:8)

$.myPlugin = { };
$.myPlugin.staticMethod = function(...) { ... };

显然,这不能进入实际的myPlugin函数,因为该函数是per-“instance”(实际上是每次调用)。

需要在myPlugin(原型)上定义实际的$.fn方法。

答案 1 :(得分:4)

你应该在$ .fn而不是$上定义你的插件。见http://docs.jquery.com/Plugins/Authoring。 然后在$ .fn.myPlugin.doSomething上定义一个方法。