Неисправность KeyPress в Opera - PullRequest
0 голосов
/ 09 февраля 2012

Я использую следующий код для определения нажатия клавиш пользователями в JavaScript:

$(document).bind('keydown', function (event) {
    'use strict';
    var keyCode = event.keyCode;

        switch (keyCode) {
        case '{N}':
             doSomething();
             break;

        default:
             break;
        }
});

Где doSomething - ранее определенная функция, а {N} - любой из кодов JavaScript JavaScript .

Он работает правильно во всех основных браузерах, но в Opera , даже если клавиша остается нажатой, он вызывает doSomething только один раз, вместо того, чтобы делать до тех пор, пока клавиша не будет отпущена. , Что я могу сделать, чтобы это исправить?


Редактировать

Я решил это, используя событие keypress вместо keydown (что плохо обрабатывается Opera).

Ответы [ 2 ]

1 голос
/ 09 февраля 2012

Opera создает беспорядок, событие keydown не повторяется, и вы не можете предотвратить использование по умолчанию keydown в опере.Для более http://quirksmode.org/dom/events/

0 голосов
/ 10 февраля 2012

это известная ошибка, которая должна (наконец-то!) Скоро быть исправлена. Короче говоря, события нажатия клавиш не повторяются, в то время как события нажатия клавиш. Прослушивание нажатий клавиш, если вы хотите повторения (и не заботитесь о клавишах, которые не запускают нажатие клавиш во всех браузерах, как большинство функциональных клавиш), должно быть разумным кросс-браузерным решением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...