Форум программистов, компьютерный форум, киберфорум
BANO
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  

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

Запись от BANO размещена 06.08.2015 в 11:49
Показов 2884 Комментарии 0
Метки 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 скрипта: один сжатый, другой нормальный, для понятия как это работает.
Метки binder, javascript
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии
 
Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru