我有一个使用热键的网页。
function HOTKEYS(){
var keys = {};
$(document).keydown(function(e) {
keys[e.which] = 1;
if (keys[80] == 1 && keys[18] == 1) {
$('input[name=customer]').focus();
}
if (keys[65] == 1 && keys[18] == 1) {
$('input[name=product]').focus();
}
if (keys[86] == 1 && keys[18] == 1) {
add_conn();
}
if (keys[83] == 1 && keys[18] == 1) {
edit_price();
}
console.log(keys);
});
$(document).keyup(function(e){
delete keys[e.which];
});
}
热键工作正常,直到其中一个热键打开激活load()
功能的事件。之后,该功能HOTKEYS()
停止工作。
有没有办法解决这个问题,而无需在 .load(( 事件后再次包含函数 HOTKEYS(( ?
(function(){
var keys = {};
$(document).on('keydown',function(e) {
keys[e.which] = 1;
if (keys[80] == 1 && keys[18] == 1) {
$('input[name=customer]').focus();
}
if (keys[65] == 1 && keys[18] == 1) {
$('input[name=product]').focus();
}
if (keys[86] == 1 && keys[18] == 1) {
add_conn();
}
if (keys[83] == 1 && keys[18] == 1) {
edit_price();
}
console.log(keys);
});
$(document).keyup(function(e){
delete keys[e.which];
});
}());
这样做。