2012-04-03 15 views
0

私はこのキーをキャプチャしようとしています:alt +下矢印、alt +上矢印。Firefoxで 'Alt'キーアップイベントが機能しない

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

このコードはokです、とAltからkeyupが検出された: まず、私の頭の中にALTキーを押し取り込みます。

しかし、私は下矢印キー、矢印のKeyDownイベントを追加する場合、それは大丈夫だが、代替から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;} 
}); 

あなたは、コンソールでこれを試すことができ、及びログイン後、「OKアクション」 "isAlt = false"のためにもう一度altキーを押す必要があります。 しかし、このコードはChromeで正常に動作します。

誰でもこのバグを修正するアイデアはありますか?

答えて

2

あなたはevent.altKeyプロパティをチェックする必要があります。https://developer.mozilla.org/en/DOM/KeyboardEvent

+0

JSFiddle:http://jsfiddle.net/XxwNZ/ – Zeta

+0

あなたはAltキーキーの状態を自分で追跡するために実際に、不要、Firefoxはあなたのためにそれを行います。 –

関連する問題