Ключевые события Javascript IE, Safari

Я пытаюсь обрабатывать ключевые события на холсте. Я добавил tabindex, который позволяет холсту получать события. Моя проблема в том, что события нажатия клавиш не регистрируются. Они все еще идут к документу. Я могу получать события буквенных клавиш, но не стандартные клавиши со стрелками (или, по крайней мере, во всем, кроме FF).

Итак, я думаю, мой вопрос заключается в том, как мне обрабатывать события клавиш со стрелками в IE, Safari и Chrome? Я получаю «вроде обработки» во всех браузерах с буквами и цифрами. Только не стрелки.

Огромное спасибо.

$('#tetris-canvas').keypress(function(e){
  e.preventDefault();
  alert('sort of handled');
  tetris.keyHandler(e);
});

Моя страница находится по адресу http://tetris.townsendwebdd.com/, если вы хотите увидеть весь код

поэтому изменил его на $(document).keypress(yada); сафари по-прежнему не обрабатывает стрелки


person Gambai    schedule 02.12.2012    source источник


Ответы (1)


Попробуй это:

$(#tetris-canvas).keydown(function(e) {
    e.preventDefault();
    e.stopPropagation();
    // your code...
});​
person palaѕн    schedule 02.12.2012
comment
это работает. спасибо, почему это работает с нажатием клавиши, а не с нажатием клавиши - person Gambai; 02.12.2012
comment
Это может помочь... stackoverflow.com/questions/1367700/ - person palaѕн; 03.12.2012