2012-04-03 6 views
0

Я пытаюсь захватить этот ключ: alt + стрелка вниз, alt + стрелка вверх. Во-первых, я захватить ключ альт вниз:Событие «Alt» keyup не работает на Firefox

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

этот код нормально, и обнаруживается альт KeyUp.

Но, если добавить клавишу со стрелкой вниз, когда стрелка 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;} 
}); 

Вы можете попробовать это на консоли, и после того, как журнал «действие ОК», вам нужно снова нажать клавишу alt для «isAlt = false». Но этот код отлично работает на Chrome.

У кого-нибудь есть идея исправить эту ошибку?

ответ

2

Вам нужно, чтобы проверить event.altKey свойство: https://developer.mozilla.org/en/DOM/KeyboardEvent

+0

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

+0

В самом деле, нет необходимости для вас, чтобы отслеживать состояние клавиши Alt себя, Firefox сделает это за вас. –

 Смежные вопросы

  • Нет связанных вопросов^_^