Bliss.js предоставляет удобный и лаконичный синтаксис для работы с
событиями в DOM, позволяя сокращать количество повторяющегося кода и
повышать читаемость. Основным инструментом является метод
on, который позволяет привязывать обработчики событий к
элементам.
// Пример базовой привязки
const button = document.querySelector('#myButton');
Bliss(button).on('click', function(event) {
console.log('Кнопка нажата', event);
});
Ключевые моменты:
Bliss(element) создаёт обёртку над DOM-элементом.on принимает название события и
функцию-обработчик.event, как в
стандартном DOM.Bliss.js позволяет сразу назначать несколько событий через пробел:
Bliss(button).on('mouseenter mouseleave', function(event) {
console.log('Событие:', event.type);
});
Такой подход избавляет от необходимости писать отдельные вызовы
addEventListener для каждого события.
Делегирование позволяет назначать обработчик на родительский элемент, который будет реагировать на события дочерних элементов. Bliss.js реализует это через специальный синтаксис с селектором.
Bliss(document.body).on('click', 'button.dynamic', function(event) {
console.log('Нажатие на динамическую кнопку:', event.target);
});
Принципы делегирования:
event.target) происходит
автоматически.Bliss.js поддерживает снятие обработчиков через метод
off. При этом важно хранить ссылку на функцию, если нужно
её удалить позже.
function handleClick(event) {
console.log('Клик по кнопке');
}
Bliss(button).on('click', handleClick);
// Позже обработчик можно удалить
Bliss(button).off('click', handleClick);
Особенности:
off снимает все обработчики
данного типа события.Bliss.js позволяет передавать дополнительные данные в обработчик
через объект data:
Bliss(button).on('click', { info: 'тест' }, function(event) {
console.log('Данные:', event.data.info);
});
event.data содержит объект с дополнительными
параметрами.Методы stop и prevent облегчают работу с
остановкой распространения событий и отменой действия по умолчанию:
Bliss(button).on('click', function(event) {
event.stop(); // Останавливает всплытие
event.prevent(); // Отменяет стандартное действие
});
Сравнение с нативным API:
| Bliss.js | DOM API |
|---|---|
event.stop() |
event.stopPropagation() |
event.prevent() |
event.preventDefault() |
Bliss.js добавляет поддержку некоторых нестандартных событий, которые удобно использовать в интерфейсах:
ready — срабатывает, когда DOM полностью загружен.tap — упрощает обработку касаний на мобильных
устройствах.hover — сочетает mouseenter и
mouseleave в одном событии.Bliss(document).on('ready', function() {
console.log('DOM загружен');
});
Можно назначать обработчики сразу для коллекций элементов:
Bliss('button').on('click', function(event) {
console.log('Кнопка нажата:', event.target);
});
Bliss можно передавать CSS-селекторы.Bliss(element или селектор)..on('event', handler)..off.stop и prevent для
контроля поведения событий.Bliss.js упрощает работу с событиями, делая код компактным и читабельным, сохраняя при этом полную функциональность стандартного DOM API.