Javascript ';Alt';键控事件don';我不能在Firefox上工作

Javascript ';Alt';键控事件don';我不能在Firefox上工作,javascript,events,firefox,alt,keyup,Javascript,Events,Firefox,Alt,Keyup,我尝试捕捉这个键:alt+向下箭头,alt+向上箭头。 首先,我捕获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 但是,如果我添加了arrow-key-down,当arrow

我尝试捕捉这个键:alt+向下箭头,alt+向上箭头。 首先,我捕获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

但是,如果我添加了arrow-key-down,当arrow-key-down时,就可以了,但是在未检测到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;}
});
您可以在控制台上尝试此操作,在记录“action ok”后,需要再次按alt键以显示“isAlt=false”。 但是,该代码在Chrome上运行良好


有人有办法纠正这个错误吗?

您需要检查
事件。altKey
属性:

实际上,您不需要自己跟踪Alt键状态,Firefox会帮您完成。