jQuery插件中的公共(静态)属性

时间:2010-03-11 08:28:21

标签: jquery plugins static-members

我有一个小的jQuery插件,我用它进行表单AJAX验证。有一个回调可以在验证/提交过程中警告调用脚本的每个“阶段”。

一些片段:

(function ($) {
    $.fn.formHelper = function (options) {
        // settings options etc
        var stage = { Start: 1, ErrorReceived: 2, AllErrorsReceived: 3, NoErrors: 4 };
        // rest of the plugin
    };
})(jQuery);

$("#some_button").formHelper({
    StageCallback: someCallbackHandler;
});

function someCallbackHandler(stage) {
    switch(stage) {
        case 1: alert("Starting validation"); break;
        case 2: alert("Error received"); break;
        case 3: alert("All errors received"); break;
        case 4: alert("No errors"); break;
    }
}

问题:如何公开我的插件的舞台变量,这样我就可以像这样使用它(比使用数字更容易阅读)?

function someCallbackHandler(stage) {
    if (stage == $.formHelper.stage.Start)
        alert("Starting validation");
}

我认为“$ .formHelper.stage.Start”符号并不准确,但我希望我能说明问题。

1 个答案:

答案 0 :(得分:4)

你的记谱很好:

(function ($) {
    $.formHelper = {
      stage: { Start: 1, ErrorReceived: 2, AllErrorsReceived: 3, NoErrors: 4 }
    };
    $.fn.formHelper = function (options) {
        // settings options etc
        var stage = $.formHelper.stage;
        // rest of the plugin
    };
})(jQuery);