直接上模块后的jQuery插件的代码:

define(function (require, exports, moudles) {
    return function (jQuery) {        
        /*这里直接贴jQuery插件的代码即可,如下就是一个例子*/
        (function ($) {
            /*Caps Lock 插件
            $(".pass").capsLockTip();*/
            $.fn.extend({
                capsLockTip: function (divTipID) {
                    return this.each(function () {
                        //创建对象实例并保存。
                        //获取实例对象:var api = $("#txtPWD").data("txtPWD");
                        var ins = new $.CapsLockTip($(this));
                        $(this).data(this.id, ins);
                    });
                }
            });
            //创建一个实例。
            //___target jq目标对象。
            //___divTipID   显示提示文本的div。
            $.CapsLockTip = function (___target) {
                //设置当前实例的配置参数。
                this.target = ___target;
                var _this = this;
                $(document).ready(function () {
                    _this.target.bind("keypress", function (_event) {
                        var e = _event || window.event;
                        var kc = e.keyCode || e.which;
                        var isShift = e.shiftKey || (kc == 16) || false;
                        $.fn.capsLockTip.capsLockActived = false;
                        if ((kc >= 65 && kc <= 90 && !isShift) || (kc >= 97 && kc <= 122 && isShift))
                            $.fn.capsLockTip.capsLockActived = true;
                        _this.showTips($.fn.capsLockTip.capsLockActived);
                    });
                    _this.target.bind("keydown", function (_event) {
                        var e = _event || window.event;
                        var kc = e.keyCode || e.which;
                        if (kc == 20 && null != $.fn.capsLockTip.capsLockActived){
                            $.fn.capsLockTip.capsLockActived = !$.fn.capsLockTip.capsLockActived;
                            _this.showTips($.fn.capsLockTip.capsLockActived);
                        }
                    });
                    _this.target.bind("focus", function (_event) {
                        if (null != $.fn.capsLockTip.capsLockActived)
                            _this.showTips($.fn.capsLockTip.capsLockActived);
                    });
                    _this.target.bind("blur", function (_event) {
                        _this.showTips(false);
                        var pass = $('.pass').val();
                        if (pass.length < 8 || pass.length > 16) {
                            $(this).addClass('error');
                            $('.pass-error').css('display', 'block');
                            $('.pass-error')[0].innerHTML = '请输入正确的密码';
                        }
                    });
                });
                //显示或隐藏大写锁定提示。
                this.showTips = function (display) {
                    if (display) {
                        $('.pass').addClass('capslock');
                        $('.pass-error').css('display', 'block');
                        $('.pass-error').css('color', '#888');
                        $('.pass-error')[0].innerHTML = '键盘大写锁定已启动,请注意!';
                    }else {
                        $('.pass').removeClass('capslock');
                        $('.pass-error').css('display', 'none');
                        $('.pass-error').css('color', '#fc6162');
                    }
                };
                //jq控件公用静态对象。
                //大写锁定键状态
                $.fn.capsLockTip.capsLockActived = null;
            };
        })(jQuery);
    }
});

上面的代码是我按需要修改的一个插件的代码,模块化后,其他模块调用方法如下:

require('./checkcapslock')($);
$(".pass").capsLockTip();

Related Posts: SeaJS中jQuery插件模块化,并从其他模块引用调用的方法 :