Захват нескольких нажатий клавиш в JavaScript - PullRequest
2 голосов
/ 11 октября 2010

Я пытаюсь создать приложение javascript, которое нуждается в этой конкретной функции:

Когда пользователь нажимает одну из клавиш со стрелками, он должен действовать в соответствии с направлением клавиши.

И если пользователь нажимает клавишу, удерживает ее и нажимает вторую, то до тех пор, пока не будет отпущено, должно выполняться только действие второй.И если первая еще нажата, ее действие должно быть выполнено снова.

Проблема в том, что при нажатии второй клавиши больше не происходит событий (кроме нажатия клавиши вверх) первой клавиши, даже после отпусканиявторой.

Вот более или менее то, что я делаю: http://jsbin.com/amajo4

Это не должно работать в IE, хотя поддержка ie8 может быть крутой, т.е. 7 и ie6полностью отменены :) Но это должно быть сделано в JavaScript, без вспышки или Silverlight.

Спасибо!

1 Ответ

4 голосов
/ 11 октября 2010

Вы можете использовать setInterval для запуска вашего обработчика каждые (например) 400 мс, а затем поддерживать стек нажатых клавиш, обрабатывая нажатия клавиш и нажатия клавиш.

...