Эмуляция нажатия сочетания клавиш JQuery

JQuery позволяет обрабатывать нажатия клавиш. В этой статье мы рассмотрим соответствующие события и функцию для обработки нажатия сочетания клавиш.

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

  1. Устанавливает функцию handler в качестве обработчика события keydown, на выбранные элементы.
    .keydown(handler(eventObject))
  2. Метод отличается от предыдущего возможностью передавать в обработчик дополнительные данные.
    .keydown(eventData, handler(eventObject))
  3. Вызывает событие keypress, у выбранных элементов страницы.
    .keydown()

     

.keyup() — устанавливает обработчик возвращения клавиши клавиатуры в ненажатое состояние, либо, запускает это событие. Варианты использования:

  1. Устанавливает функцию handler в качестве обработчика события keyup, на выбранные элементы.
    .keyup(handler(eventObject))
  2. Метод отличается от предыдущего возможностью передавать в обработчик дополнительные данные.
    .keyup(eventData, handler(eventObject))
  3. Вызывает событие keyup, у выбранных элементов страницы.
    .keyup()

     

.keypress() — устанавливает обработчик ввода символа с клавиатуры, либо, запускает это событие. Варианты использования:

  1. Устанавливает функцию handler в качестве обработчика события keypress, на выбранные элементы.
    .keypress(handler(eventObject))
  2. Метод отличается от предыдущего возможностью передавать в обработчик дополнительные данные.
    .keypress(eventData, handler(eventObject))
  3. Вызывает событие keypress, у выбранных элементов страницы.
    .keypress()

А что делать, если необходимо обработать сочетание клавиш? Вот простенькая функция, которая показывает, как это можно реализовать:

$(document).keydown(function (e) {
  if (event.ctrlKey && e.which == 82 ) {
      alert("Нажали");
      return false;
  }
});

Как работает данная функция можете посмотреть прям сейчас сочетанием клавишь Ctrl+R

Оставить комментарий

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