Захотелось мне в своем проекте использовать горячие клавиши для управления содержимым. Нажал esc — закрылось диалоговое окно, ctrl+left — открылся следующий раздел… Порылся в гуглях-яндексах и, не найдя идеала, решил написать свое решение.
Теперь оно у меня есть — маленькое, легкое, независимое от от других библиотек.
Мне достаточно подключить javascript-файл и написать
Готовый javascript можно взять здесь.
UPD Улучшен код. Спасибо, Yeah, aubt.
$e(param0 [[, param1 [, param2… ] ] )
Функция принимает список горячих клавиш (независимые от регистра, через пробелы или "+"), на которые вы хотите повесить действие.
Понимает: alt, shift, ctrl, meta, esc, enter, up, down, left, right, tab, space, pageup, pagedown, home, end, буквы латинского алфавита (a-zA-Z), цифры (0-9), символьные коды (10-128);
Кроме того, есть специальные слова keyup, keydown, keypress, которые указывают на какое действие реагировать (по-умолчанию — keyup).
Необходимо помнить, что браузеры могут вызывать или не вызывать события в зависимости от его типа.
Возвращает контекст.
Примеры:
.bind(param)
Пинимает функцию или javascript, который назначится сочетанию клавиш, переданным функцией $e().
Примеры:
.unbind([param])
Отвязывает действие от сочетания клавиш, переданного функцией $e().
Если параметр пустой, то от этого сочетания отвяжутся все действия.
Пример:
Запускает прослушивание клавиш.
Послушивание также включается само, при использовании функции .bind().
Останавливает прослушивание клавиш.
* This source code was highlighted with Source Code Highlighter.
Теперь оно у меня есть — маленькое, легкое, независимое от от других библиотек.
Мне достаточно подключить javascript-файл и написать
$e('ctrl esc').bind("alert('Ыыы');");
Готовый javascript можно взять здесь.
UPD Улучшен код. Спасибо, Yeah, aubt.
Подробнее о возможностях
Функция $e()
$e(param0 [[, param1 [, param2… ] ] )
Функция принимает список горячих клавиш (независимые от регистра, через пробелы или "+"), на которые вы хотите повесить действие.
Понимает: alt, shift, ctrl, meta, esc, enter, up, down, left, right, tab, space, pageup, pagedown, home, end, буквы латинского алфавита (a-zA-Z), цифры (0-9), символьные коды (10-128);
Кроме того, есть специальные слова keyup, keydown, keypress, которые указывают на какое действие реагировать (по-умолчанию — keyup).
Необходимо помнить, что браузеры могут вызывать или не вызывать события в зависимости от его типа.
Возвращает контекст.
Примеры:
$e('esc')
$e('keyup Ctrl+left', 'meta left keyup')
Функция .bind()
.bind(param)
Пинимает функцию или javascript, который назначится сочетанию клавиш, переданным функцией $e().
Примеры:
$e('esc').bind('alert("!")')
$e('keyup Ctrl+left', 'meta left keyup').bind(do_foo)
Функция .unbind()
.unbind([param])
Отвязывает действие от сочетания клавиш, переданного функцией $e().
Если параметр пустой, то от этого сочетания отвяжутся все действия.
Пример:
$e('esc', 'keyup Ctrl+left', 'meta left keyup').unbind()
Функция $e.start()
Запускает прослушивание клавиш.
Послушивание также включается само, при использовании функции .bind().
Функция $e.stop()
Останавливает прослушивание клавиш.
* This source code was highlighted with Source Code Highlighter.