Я покажу, как обрабатывать различные события клавиатуры.Я также покажу, как определить, какая конкретная клавиша была нажата пользователем.
Во-первых, нам нужно немного подумать, чтобы убедиться, что мы понимаем разницу между тремя различными типами общих событий клавиатуры:
- keydown: клавиша была нажата, но еще не отпущена.Действие по умолчанию еще не было выполнено.
- нажатие клавиши: клавиша была нажата, и символ зарегистрирован.Это событие будет срабатывать непрерывно, если удерживать клавишу нажатой.
- keyup: нажатая клавиша была отпущена.
Допустим, мы создаем веб-приложение и хотим создать интерактивный учебникчто мы сделали доступным через интуитивное сочетание клавиш.В любом месте приложения наши пользователи должны иметь возможность вызывать наш виджет справки с помощью комбинации клавиш Ctrl-H.
jQuery
$(document).keydown(function(event) {
if (event.ctrlKey && event.which === 72) {
// open help widget
}
});
Web API
< document.addEventListener('keydown', function(event) {
if (event.ctrlKey && event.which === 72) {
// open help widget
}
});>
Ничего явно не получается, в данном случае, с jQuery.Даже синтаксис почти идентичен между Web API и jQuery.
Регистрация для других событий клавиатуры происходит по аналогичной схеме:
jQuery
$(someElement).keypress(function(event) {
// ...
});
$(someElement).keyup(function(event) {
// ...
});
Web API
someElement.addEventListener('keypress', function(event) {
// ...
});
someElement.addEventListener('keyup', function(event) {
// ...
});
Для получения дополнительной информации о свойствах событий клавиатуры и совместимости браузера