HTML快捷键JS

调用方式:

 

//用哪个快捷键添加哪个即可
            //add blankout(销毁) copy cancel delete define edit import ok print query reset submit save 
            $().bdShortcutKey({
                add: function () {
                    alert("add");
                },
                _delete: function () {
                    alert("_delete");
                },
                save: function() {
                    alert("save");
                },
                print: function() {
                    alert("print");
                }
            });

js内容为:

/**
 * 快捷键
 * Written by ranlx@bondex.com.cn
 * version: v 1.0.0    time: 2017-09-04. created
 * **/
(function ($) {
        $.fn.bdShortcutKey = function (option) {
            var arg = arguments[0]
            if (functions[arg])// 检验方法是否存在
            {
                arg = functions[arg]
                // 如果方法不存在,检验对象是否为一个对象(JSON对象)或者method方法没有被传入
            } else if (typeof(arg)  == 'object' || !arg) {
                // 如果我们传入的是一个对象参数,或者根本没有参数,init方法会被调用
                arg = functions.init;
            } else {
                // 如果方法不存在或者参数没传入,则报出错误。需要调用的方法没有被正确调用
                $.error('Method ' + arg + ' does not exist on jQuery.pluginName');
                return this;
            }
            // 用apply方法来调用我们的方法并传入参数
            return arg.apply(this, arguments);

        }

        var functions = {
            init: function (options) {
                // 创建一个默认设置对象
                var defaults = {
                    items: [],
                    add:null,
                    blankout:null,
                    copy:null,
                    cancel:null,
                    _delete:null,
                    define:null,
                    edit:null,
                    _import:null,
                    ok:null,
                    print:null,
                    query:null,
                    reset:null,
                    submit: null,
                    save:null,

                }

                // 使用extend方法从options和defaults对象中构造出一个settings对象
                var settings = $.extend({}, defaults, options);

                //验证组合按键
                //var key_number=0;
                //16:Shift 17是ctrl键 18:alt
                var controlKeyNumber=18;
                $(document).keydown(function (event) {
                    var keys = {
                        "key_48": "0",
                        "key_49": "1",
                        "key_50": "2",
                        "key_51": "3",
                        "key_52": "4",
                        "key_53": "5",
                        "key_54": "6",
                        "key_55": "7",
                        "key_56": "8",
                        "key_57": "9",
                        "key_65": "A",
                        "key_66": "B",
                        "key_67": "C",
                        "key_68": "D",
                        "key_69": "E",
                        "key_70": "F",
                        "key_71": "G",
                        "key_72": "H",
                        "key_73": "I",
                        "key_74": "J",
                        "key_75": "K",
                        "key_76": "L",
                        "key_77": "M",
                        "key_78": "N",
                        "key_79": "O",
                        "key_80": "P",
                        "key_81": "Q",
                        "key_82": "R",
                        "key_83": "S",
                        "key_84": "T",
                        "key_85": "U",
                        "key_86": "V",
                        "key_87": "W",
                        "key_88": "X",
                        "key_89": "Y",
                        "key_90": "Z",
                        "key_96": "0",
                        "key_97": "1",
                        "key_98": "2",
                        "key_99": "3",
                        "key_100": "4",
                        "key_101": "5",
                        "key_102": "6",
                        "key_103": "7",
                        "key_104": "8",
                        "key_105": "9",
                    };
                    if (event.altKey && event.keyCode !== 18) {
                        switch (keys["key_" + event.keyCode]) {
                            case "A":
                                if (settings.add !== null) {
                                    settings.add();
                                    return false;
                                }
                                break;
                            case "B":
                                if (settings.blankout !== null) {//作废
                                    settings.blankout();
                                    return false;
                                }
                                break;
                            case "C":
                                if (settings.copy !== null) {
                                    settings.copy();
                                    return false;
                                }
                                if (settings.cancel !== null) {
                                    settings.cancel();
                                    return false;
                                }
                                break;
                            case "D":
                                if (settings._delete !== null) {
                                    settings._delete();
                                    return false;
                                }
                                if (settings.define !== null) {
                                    settings.define();
                                    return false;
                                }
                                break;
                            case "E":
                                if (settings.edit !== null) {
                                    settings.edit();
                                    return false;
                                }
                                break;
                            case "F":

                                break;
                            case "G":

                                break;
                            case "H":

                                break;
                            case "I":
                                if (settings._import !== null) {
                                    settings._import();
                                    return false;
                                }
                                break;
                            case "J":

                                break;
                            case "K":

                                break;
                            case "L":

                                break;
                            case "M":

                                break;
                            case "N":

                                break;
                            case "O":
                                if (settings.ok !== null) {
                                    settings.ok();
                                    return false;
                                }
                                break;
                            case "P":
                                if (settings.print !== null) {
                                    settings.print();
                                    return false;
                                }
                                break;
                            case "Q":
                                if (settings.query !== null) {
                                    settings.query();
                                    return false;
                                }
                                break;
                            case "R":

                                break;
                            case "S":
                                if (settings.submit !== null) {
                                    settings.submit();
                                    return false;
                                }
                                if (settings.save !== null) {
                                    settings.save();
                                    return false;
                                }
                                break;
                            case "T":

                                break;
                            case "U":

                                break;
                            case "V":

                                break;
                            case "W":

                                break;
                            case "X":

                                break;
                            case "Y":

                                break;
                            case "Z":

                                break;
                            case "0":

                                break;
                            case "1":

                                break;
                            case "2":

                                break;
                            case "3":

                                break;
                            case "4":

                                break;
                            case "5":

                                break;
                            case "6":

                                break;
                            case "7":

                                break;
                            case "8":

                                break;
                            case "9":

                                break;
                        }
                    }
                });
            }, val: function () {
                return "test";
            }
        }
    })
    ($);

 

转载于:https://my.oschina.net/vinie/blog/1541772

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值