将Jquery函数转换为插件

时间:2012-01-11 20:08:15

标签: jquery-plugins

我最近收到了一些关于编写一些jquery功能的好建议。我想把它变成一个插件 这是我在此链接上从stackOverflow @ micha获得的代码

https://stackoverflow.com/a/8820946/729820

$('#DischargeDateTimeMask').keypress(function (e) {
        var regex = ["[0-1]",
                     "[0-2]",
                     ":",
                     "[0-5]",
                     "[0-9]",
                     "(\\s)",
                     "(A|P)",
                     "M"],
        string = $(this).val() + keyboard(e),
        b = true;
        for (var i = 0; i < string.length; i++) {
            if (!new RegExp("^" + regex[i] + "$").test(string[i])) {
                b = false;
            }
        }
        return b;
    });
    function keyboard(a) { var b = a.charCode ? a.charCode : a.keyCode ? a.keyCode : 0; if (b == 8 || b == 9 || b == 13 || b == 35 || b == 36 || b == 37 || b == 39 || b == 46) { if ($.browser.mozilla) { if (a.charCode == 0 && a.keyCode == b) { return true } } } return String.fromCharCode(b) }

我个人试图把它变成像这样的插件......

(function ($) {
$.fn.simpleTimeMask = function () {
    $(this).keypress(function (e) {
        debugger;
        var regex = ["[0-2]",
        "[0-4]",
        ":",
        "[0-6]",
        "[0-9]",
        "(A|P)",
        "M"],
        string = $(this).val() + keyboard(e),
        b = true;
        for (var i = 0; i < string.length; i++) {
            if (!new RegExp("^" + regex[i] + "$").test(string[i])) {
                b = false;
            }
        }
        return b;
    });
}


    (function ($) {
        var methods = {
            keyboard: function (a) {
                //THIS
                var b = a.charCode ? a.charCode : a.keyCode ? a.keyCode : 0; if (b == 8 || b == 9 || b == 13 || b == 35 || b == 36 || b == 37 || b == 39 || b == 46) { if ($.browser.mozilla) { if (a.charCode == 0 && a.keyCode == b) { return true } } } return String.fromCharCode(b)
            }
        }
    });

function keyboard(a) { var b = a.charCode ? a.charCode : a.keyCode ? a.keyCode : 0; if (b == 8 || b == 9 || b == 13 || b == 35 || b == 36 || b == 37 || b == 39 || b == 46) { if ($.browser.mozilla) { if (a.charCode == 0 && a.keyCode == b) { return true } } } return String.fromCharCode(b) }
 })(jQuery);

注意我有两个尝试做同样事情的函数。我认为一个函数将由该插件的用户调用,另一个将在内部使用。无论如何,我把这个东西全部编译好了,我试图将它添加到我的项目中,但正如预期的那样,它没有用。您对构建此插件的建议是什么?

0 个答案:

没有答案