Выложил библиотеку для создания клавиатурных шорткатов JavaScript Shortcuts Library (jQuery plugin). Пригодится при разработке больших веб-приложений, а также написании игр на JavaScript.
Библиотека приятна и проста в использовании. Добавляем шорткат:
$.Shortcuts.add({
type: 'down',
mask: 'Ctrl+A',
handler: function() {
debug('Ctrl+A');
}
});
Добавляем еще один:
$.Shortcuts.add({
type: 'up',
mask: 'Shift+B',
handler: function() {
debug('Shift+B');
}
});
Начинаем реагировать на шорткаты:
$.Shortcuts.start();
Поддерживаются три типа событий, по которым могут срабатывать обработчики:
down
— на нажатие клавиши или сочетания клавишup
— на отпусканиеhold
— на нажатие и удержание (обработчик будет вызван сразу после нажатия и потом будет вызываться с некоторой периодичностью пока нажата клавиша)
Строка задающая сочетание клавиш должна состоять из имен клавиш разделенных плюсами. Может быть не более одной клавиши отличной от Ctrl, Shift или Alt. Строка нечувствительна к регистру. Примеры: "Esc", "Shift+Up", "ctrl+a".
Кроме того, можно создавать несколько списков шорткатов, а затем, в зависимости от ситуации на странице, активизировать определенный список.
Добавляем шорткат в список "another":
$.Shortcuts.add({
type: 'hold',
mask: 'Shift+Up',
handler: function() {
debug('Shift+Up');
},
list: 'another'
});
Переключаемся на список шорткатов "another":
$.Shortcuts.start('another');
Также можно удалять шорткаты:
$.Shortcuts.remove({
type: 'hold',
mask: 'Shift+Up',
list: 'another'
});
Останавливаем работу шорткатов (делается unbind навешенных обработчиков событий):
$.Shortcuts.stop();
Поддерживаемые клавиши:
- Модификаторы: Ctrl, Shift, Alt
- Цифры: 0—9
- Буквы: A—Z (case-insensitive)
- Специальные клавиши: Backspace, Tab, Enter, Pause, CapsLock, Esc, Space, PageUp, PageDown, End, Home, Left, Up, Right, Down, Insert, Delete, F1—F12, ? (знак вопроса), минус, плюс
Буду рад замечаниям и предложениям по улучшению.