В библиотеке Dom7, как и в стандартном DOM, объект события представляет собой данные о происходящем событии, позволяющие реагировать на действия пользователя или изменения состояния элементов. Dom7 предоставляет упрощённый и удобный доступ к этим объектам, сохраняя при этом совместимость с нативными событиями JavaScript.
Объект события в Dom7 наследует стандартные свойства JavaScript
Event:
'click',
'input', 'submit').Dom7 дополняет эти свойства некоторыми удобными методами и сокращениями, упрощая работу с событиями.
В Dom7 обработчик события получает объект события как первый аргумент функции:
import $ from 'dom7';
$('button').on('click', function (event) {
console.log(event.type); // 'click'
console.log(event.target); // DOM-элемент кнопки
console.log(event.currentTarget); // тот же DOM-элемент, к которому привязан обработчик
});
Объект события может быть использован для доступа к элементам, изменению поведения по умолчанию или остановки всплытия события.
Dom7 расширяет стандартные методы:
$('a').on('click', function (event) {
event.preventDefault(); // ссылка не перейдет по href
});
Dom7 добавляет удобные свойства для быстрого доступа к информации о событии:
event.target, позволяющая использовать методы библиотеки
напрямую.currentTarget.Пример использования:
$('ul li').on('click', function (event) {
event.$target.addClass('active'); // добавление класса через Dom7
});
Dom7 поддерживает делегирование событий, где обработчик привязывается к родительскому элементу, а срабатывает для потомков, соответствующих селектору. Объект события в этом случае содержит информацию о фактическом элементе, на котором произошло событие:
$('ul').on('click', 'li', function (event) {
console.log(event.target); // конкретный <li>, по которому кликнули
console.log(event.currentTarget); // <ul>, к которому привязан обработчик
});
Dom7 упрощает работу с событиями мыши и сенсорных устройств,
объединяя обработку click, touchstart,
touchend и других событий. В объекте события доступны
стандартные координаты:
$('.box').on('touchstart', function (event) {
console.log(event.touches[0].pageX, event.touches[0].pageY);
});
thisВ обработчиках Dom7 this всегда ссылается на
DOM-элемент, к которому привязан обработчик, а не на
объект события. Для получения Dom7-обёртки можно использовать
event.$currentTarget:
$('.item').on('click', function (event) {
$(this).addClass('clicked'); // через this
event.$currentTarget.removeClass('active'); // через объект события
});
Dom7 позволяет создавать и триггерить собственные события через метод
.trigger(). При этом объект события может содержать
дополнительные данные, передаваемые вторым аргументом:
const data = { message: 'Hello' };
$('#button').trigger('customEvent', data);
$('#button').on('customEvent', function (event, extraData) {
console.log(extraData.message); // 'Hello'
});
Это расширяет возможности управления поведением приложения, позволяя передавать любые дополнительные параметры в обработчики.
event.preventDefault() для отмены
стандартного поведения форм и ссылок.$target и $currentTarget.touches, targetTouches и
changedTouches.Объект события в Dom7 сочетает привычный интерфейс стандартного DOM с расширенными возможностями, упрощая манипуляции, делегирование и работу с касаниями. Такой подход делает обработку событий более наглядной и компактной, позволяя писать меньше кода без потери гибкости.