Блокировка keydown во время ввода в текстовом поле
Здравствуйте.
Столкнулся с проблемой следующего характера: На странице сайта задействованы стрелки на клавиатуре. При нажатии на них, выполняются определенные действия. function checkKey(e) { switch (e.keyCode) { case 40: // Перемещение объекта вверх break; case 38: // Перемещение объекта вниз break; case 37: // Перемещение объекта налево break; case 39: // Перемещение объекта направо break; } } $(document).keypress(checkKey); Все отлично работает за исключением одного нюанса: когда пользователь заполняет любое текстовое поле, при нажатии данных кнопок на клавиатуре (например, для перемещения указателя влево или вправо), выполняются функции, привязаны к данным кнопкам, т.е. перемещается объект на экране. Каким образом можно заблокировать событие keypress, до тех пор, пока активно любое текстовое поле на странице (input/textarea)? |
Вариант 1:
Проверять event.target на соответствие текстовым полям. Вариант 2: Навесить обработчик событий blur/focus, по focus - удалять обработчик keypress, по blur - добавлять обратно. Получится именно такая логика, какую ты хочешь. |
Часовой пояс GMT +3, время: 10:18. |