Форум программистов, компьютерный форум, киберфорум
Наши страницы
BANO
Войти
Регистрация
Восстановить пароль
Рейтинг: 5.00. Голосов: 3.

Утилита для биндинга сочетаний клавиш на js

Запись от BANO размещена 06.08.2015 в 11:49
Обновил(-а) BANO 22.09.2016 в 22:27
Метки binder, javascript

Решил вот поделится своей реализацией бинда сочетаний.
Использовать очень легко:
Javascript
1
2
3
4
5
6
7
function undo(e){// функция вынесена отдельно для удобства снятия бинда
    // e - объект события клавиатуры, не урезанный ничего с ним кроме вас никто не сделает
    undo("text"); // делаем что душе захочется
    return "stop"; // останавливаем цикл вызывания листнеров этого сочетания
}
B.bind("z|%",undo)
    //.bind ... // для создания макарон;
Первым аргументом передаётся строчка, определяющая, на какое сочетание должно вызываться событие. Строчка может содержать как буквы ("z", "15", "z|$"), так и коды клавиш, всё в любом случае приводится к определенному виду, дальше будем называть фильтр.
В строчках есть флаги сочетаний клавиш:
$ - alt
% - ctrl
^ - shift

И флагами они считаются если только стоят после знака |. Они показывают какие дополнительные клавиши(alt, ctrl, shift) должны быть нажаты.

Но надо помнить, что когда мы биндуем 1 из этих клавиш, это получается сочетание этой клавиши и нею самой, то есть если мы хотим действовать при нажатии на клавишу ctrl, фильтр должен быть такой "ctrl|%", потому как просто "ctrl" не сработает.

Снять бинд тоже просто. Надо указать фильтр сочетания и функцию, которая обрабатывает этот фильтр:
Javascript
1
B.unbind("Z|%",undo);// всё теперь снято, возвращает булен
Тут находятся 2 скрипта: один сжатый, другой нормальный, для понятия как это работает.
Размещено в Без категории
Просмотров 527 Комментарии 0
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru