调用方式:
//用哪个快捷键添加哪个即可
//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";
}
}
})
($);