• Теория
  • Теория

Выбор клавиши

Событие мы назвали, оно срабатывает при нажатии на любую клавишу. Но нам любая не подходит, нам нужен ESC. Как выполнять код по нажатию только на одну конкретную клавишу? Обратимся к уже знакомому объекту event.

Мы говорили раньше, что у объекта события есть много полезных свойств. Например, тип события, введённый символ, координаты курсора в момент наступления события и многое другое. В том числе и код клавиши, которую нажал пользователь. Это свойство называется keyCode.

С помощью этого свойства каждую клавишу можно определить по коду. Например, у Enter код 13, а у ESC — код 27. Эти номера универсальны и одинаковы в любой раскладке. Найти код любой клавиши можно здесь.

Теперь мы знаем, что есть объект event, который содержит номер нажатой клавиши в свойстве keyCode, и знаем код необходимой клавиши. Осталось всё это собрать в одном обработчике.

document.addEventListener('keydown', function(evt) {
  // Проверяем, что код клавиши равен 27
  if (evt.keyCode === 27) {
    // Код отсюда выполнится только при нажатии ESC
  }
});

Настроим наш обработчик, чтобы инструкции выполнялись только при нажатии ESC.

Кстати,

кроме keyCode есть и другие свойства для определения нажатой клавиши. Например, key. Его отличие в том, что он возвращает не код клавиши, а её название в виде строки: «Enter», «Alt», «Escape». Ещё есть свойство code. Оно тоже возвращает название клавиши, при этом на значение не влияет выбранный язык клавиатуры. Эти свойства пока поддерживаются не во всех браузерах, но когда поддержка станет лучше, стоит начать использовать их вместо keyCode в соответствии с современным стандартом JavaScript.

Минимальный вид табов
  • index.html
HTML
HTML

Вы перешли на другую страницу

Кликните внутри мини-браузера, чтобы поставить фокус в это окно.

100%
Бабушка Кекс

Притормози, дружище

Проходить вызовы части «Знакомство с событиями» тренажёра «Погружение в браузерный JavaScript» можно после регистрации и оформления подписки.