0

我尝试捕捉这个键:alt+arrow down,alt+arrow up。首先,我捕获 alt 键:

var isAlt = false;
$(document).keydown(function (e) {  
    if(e.which == 18){isAlt=true;} 
}).keyup(function (e) {
    if(e.which == 18){isAlt=false;}
});

此代码没问题,并且检测到 alt keyup。

但是,如果我添加向下箭头键,当向下箭头键时,没关系,但是在 alt keyup 之后没有检测到:

var isAlt = false;
$(document).keydown(function (e) {  
    if(e.which == 18){isAlt=true;}else{
        if(e.which == 38 && isAlt == true) {
             //action code here work
             console.log('action ok');
        }
    }
}).keyup(function (e) {
    if(e.which == 18){isAlt=false;}
});

您可以在控制台上尝试此操作,在记录“操作正常”后,您需要再次按“isAlt = false”的 alt 键。但是,这段代码在 Chrome 上运行良好。

任何人都有一个想法来纠正这个错误?

4

1 回答 1

2

您需要检查event.altKey属性:https ://developer.mozilla.org/en/DOM/KeyboardEvent

于 2012-04-03T06:54:04.180 回答