.keydown() – обработчик перехода клавиши клавиатуры в нажатое состояние

.keydown() – устанавливает обработчик перехода клавиши клавиатуры в нажатое состояние, либо, запускает это событие.

Метод имеет три варианта использования.

.keydown( handler )
  • handler – функция, которая будет установлена в качестве обработчика.
.keydown( [eventData ], handler )
  • eventData – объект содержащий данные, для передачи в обработчик. Должны быть представлены в формате {fName1:value1, fName2:value2, ...};
  • handler – функция, которая будет установлена в качестве обработчика.
.keydown()

Вызывает событие keypress, у выбранных элементов страницы.

В первых двух вариантах, этот метод является сокращенной версией .on( "keydown", handler ), а в третьем – .trigger( "keydown" ).

Событие keydown отправляется элементу, когда пользователь нажимает клавишу на клавиатуре. Если клавиша удерживается нажатой, то событие вызывается многократно. Это событие может быть прикреплено к любому элементу, но сработает только на тех элементах, которые имеют фокус. Список элементов, которые могут получить фокус, варьируются в зависимости от браузера, поэтому надежнее всего будет привязать это событие к элементам формы, так как они всегда могут получить фокус.

Для примера рассмотрим html:

<form>
  <input id="target" type="text" value="Hello there">
</form>
<div id="other">
  Trigger the handler
</div>

Обработчик события может быть привязан к полю ввода:

$( "#target" ).keydown(function() {
  alert( "Вызвано событие .keydown()" );
});

При нажатии клавиши в поле ввода мы увидим сообщение “Вызвано событие .keydown()”.

Чтобы инициировать событие вручную, примените .keydown() без аргумента:

$( "#other" ).click(function() {
  $( "#target" ).keydown();
});

При клике мышью в область с id="other" будет вызвано событие и мы также увидим сообщение.

Поскольку метод .keydown() является сокращенной версией .on( "keydown", handler ), он может быть удален с помощью .off( "keydown" ).

Если необходимо установить обработчик нажатия клавиши в любом месте страницы (например, для реализации глобальных сочетаний клавиш), то лучше всего прикрепить это поведение к объекту документа. Событие нажатия клавиши “всплывает” по DOM, если не будет явно остановлено. Например, можно реализовать закрытие всплывающего окна по Esc:

$(document).keydown(function(eventObject){
  if ( eventObject.which == 27 ) { // нажата клавиша Esc
    // ваша функция закрытия окна
  };
});

Код нажатой клавиши

В примере выше для того, чтобы узнать какая именно клавиша клавиатуры была нажата, мы можем посмотреть значение переменной eventObject.which, которая содержит код нажатой клавиши. Код клавиши Esc равен 27, поэтому если условие верно, вызывается код закрытия окна.

Надо отметить, что метод keydown как и keyup определяет нажатую клавишу, а не вводимый символ, таким образом, при вводе латинских “q” и “Q” и кириллических “й” и “Й”, переменная eventObject.which внутри обработчика события keyup будет содержать одно значение — 81, поскольку все они находятся на одной кнопке.

 

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *