Комбинация нажатий клавиш с использованием JS / Jquery (Escape & Shift + Escape) - PullRequest
3 голосов
/ 27 мая 2011

Есть ли способ в js / jquery, как использовать эти 2 комбинации клавиш?

Клавиша ESCape а также Клавиша SHIFT + ESCape

когда я реализовал это с помощью

    document.onkeydown = function(e){if (e == null) {keycode = event.keyCode;}
    else         {keycode = e.which;}
    if(keycode == 27){closeAll();}}

    //upon pressing shift + esc
    $(document).bind('keypress',function(event)
    {
          if(event.which === 27 && event.shiftKey)
        {
      closetogether();
       }

    });

кнопка выхода работает отлично, но кнопка с shift + esc запуталась, я думаю, потому что она ничего не делает. Не волнуйтесь, функция работает, например, когда я меняю комбинационную клавишу с 27 на 90 (z), она работает просто отлично.

Может кто-нибудь выбрать мне лучший путь?

1 Ответ

4 голосов
/ 27 мая 2011

Почему бы вам не связать событие keydown с помощью jQuery? Таким образом, у вас уже будет нормализованная переменная события. Вы также можете проверить состояние клавиши Shift в том же обработчике.

Эти события отправляют разные коды клавиш назад. Используйте keyup/keydown для захвата определенных клавиш сканкодами и используйте keypress для захвата фактического ввода текста символами.

$(document).bind('keydown', function(event) {
    if(event.which === 27){
        if(event.shiftKey){
            closetogether();
        } else {
            closeAll();
        }
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...