Cash — это легковесная библиотека, вдохновлённая jQuery, которая
упрощает работу с DOM, включая управление событиями. Основные методы для
работы с событиями в Cash — это on, off,
trigger и вспомогательные методы для специфических событий
(click, focus, blur и др.).
onМетод on используется для привязки обработчиков событий
к элементам DOM.
Синтаксис:
$(selector).on(event, [selector], handler);
'click', 'input', 'mouseenter' и
т.д.). Для нескольких событий можно указать через пробел:
'click mouseenter'.Примеры:
$('.button').on('click', function(event) {
console.log('Кнопка нажата', event.target);
});
$('#list').on('click', 'li', function(event) {
console.log('Элемент списка выбран:', $(this).text());
});
Особенности делегирования:
Делегирование событий позволяет назначать обработчик на родительский элемент для динамически создаваемых потомков. Это экономит ресурсы и упрощает управление большим числом элементов.
offМетод off удаляет ранее назначенные обработчики
событий.
Синтаксис:
$(selector).off(event, [selector], [handler]);
event, удаляются все обработчики
данного события.selector, удаляются обработчики,
привязанные к потомкам.handler, удаляется конкретная
функция.Примеры:
$('.button').off('click'); // удаляет все клики
$('#list').off('click', 'li'); // удаляет обработчики клика у элементов li
triggerМетод trigger позволяет программно инициировать событие
на элементе.
Синтаксис:
$(selector).trigger(event, [data]);
Пример:
$('#input').on('change', function(event, extra) {
console.log('Событие change с данными:', extra);
});
$('#input').trigger('change', {value: 42});
Метод trigger можно использовать для имитации
пользовательских действий и тестирования поведения элементов.
Cash предоставляет короткие методы для часто используемых событий, аналогичные jQuery:
.click(handler) — привязка клика..dblclick(handler) — двойной клик..focus(handler) — получение фокуса..blur(handler) — потеря фокуса..hover(handlerIn, handlerOut) — наведение и уход
курсора.Пример:
$('.input-field').focus(function() {
$(this).css('border-color', 'blue');
}).blur(function() {
$(this).css('border-color', '');
});
$('.button').hover(
function() { $(this).addClass('hover'); },
function() { $(this).removeClass('hover'); }
);
Эти методы позволяют писать компактный и читаемый код для стандартных сценариев работы с событиями.
Cash позволяет передавать дополнительные данные при назначении события:
$('.button').on('click', {id: 123}, function(event) {
console.log('ID элемента:', event.data.id);
});
Данные будут доступны через объект event.data.
Объект события в Cash включает стандартные свойства DOM Event:
type — тип события (click,
input и др.).target — элемент, на котором произошло событие.currentTarget — элемент, на котором назначен
обработчик.preventDefault() — предотвращает стандартное
поведение.stopPropagation() — останавливает всплытие
события.data — данные, переданные при привязке события через
on.События в Cash, как и в нативном DOM, всплывают от вложенного элемента к родительскому. Делегирование позволяет использовать одно назначение обработчика для множества потомков:
$('#menu').on('click', 'a', function(event) {
event.preventDefault();
console.log('Ссылка выбрана:', $(this).attr('href'));
});
В этом примере обработчик срабатывает для всех ссылок внутри
#menu, включая динамически добавленные.
Cash позволяет назначать один обработчик сразу на несколько событий, перечисляя их через пробел:
$('.input-field').on('focus blur', function(event) {
console.log('Событие:', event.type);
});
Такой подход уменьшает дублирование кода при одинаковых действиях для разных событий.
Cash поддерживает создание и обработку пользовательских событий:
$('.box').on('customEvent', function(event, payload) {
console.log('Кастомное событие:', payload);
});
$('.box').trigger('customEvent', {message: 'Hello'});
Это полезно для построения внутренней коммуникации между компонентами без использования глобальных переменных.
off, когда элемент больше не
нужен.trigger слишком часто на
крупных DOM-деревьях, чтобы избежать лишних перерасчетов.Cash обеспечивает полный набор инструментов для работы с событиями:
Эта функциональность делает Cash удобным и гибким инструментом для управления событиями в современных веб-приложениях.