Библиотека Zepto.js предоставляет компактный и удобный API для работы с DOM и событиями, существенно упрощая добавление и управление обработчиками событий. Механизм работы с событиями в Zepto во многом схож с jQuery, но имеет свои особенности, которые позволяют писать более легкий и быстрый код.
on — основной метод для привязки
обработчиков:
$(selector).on(event, [selector], handler)
'click',
'mouseenter mouseleave').Пример простой привязки события:
$('#button').on('click', function() {
console.log('Кнопка нажата');
});
Делегирование позволяет привязывать обработчик к родительскому элементу, который будет отслеживать события у дочерних элементов, даже если они добавлены динамически после привязки:
$('#list').on('click', 'li', function() {
console.log('Нажат элемент списка:', $(this).text());
});
Преимущества делегирования:
Метод off используется для удаления
обработчиков событий:
$(selector).off(event, [selector], [handler])
event, удаляются все обработчики
для данного события.handler, удаляется конкретная функция.Пример удаления обработчика:
function clickHandler() {
console.log('Нажатие');
}
$('#button').on('click', clickHandler);
$('#button').off('click', clickHandler);
Метод one привязывает обработчик так,
чтобы он сработал только один раз:
$('#button').one('click', function() {
console.log('Сработает только один раз');
});
Это удобно для операций, которые нужно выполнить единожды, например, инициализация анимации.
Zepto поддерживает все стандартные события DOM (click,
mousedown, mousemove, keydown и
т. д.), а также ряд пользовательских событий:
focusin / focusout —
аналог focus и blur, но поддерживают
делегирование.input / change —
отслеживание изменений в полях формы.tap, swipe — события для
мобильных устройств (если подключен модуль event).Пример использования событий формы:
$('#input').on('input', function() {
console.log('Значение изменилось:', $(this).val());
});
Обработчики в Zepto получают объект события Event, который предоставляет следующие свойства и методы:
click,
keydown и т.д.).Пример:
$('#link').on('click', function(event) {
event.preventDefault();
console.log('Событие перехвачено, переход по ссылке отменен');
});
Метод trigger позволяет программно
инициировать события:
$(selector).trigger(event, [data])
Пример:
$('#button').on('click', function(event, extra) {
console.log('Клик обработан, данные:', extra);
});
$('#button').trigger('click', { id: 1 });
Zepto облегчает работу с мобильными событиями. Помимо стандартных
click и mousedown, можно использовать:
tap — короткое нажатие пальцем.swipeLeft, swipeRight —
жесты скольжения.longTap — длительное нажатие.Пример использования tap:
$('#mobileButton').on('tap', function() {
console.log('Нажатие на мобильном устройстве');
});
one.off для
предотвращения утечек памяти.preventDefault для контроля стандартного поведения.Zepto обеспечивает гибкую и компактную систему управления событиями, объединяя возможности делегирования, одноразовых обработчиков и поддержки мобильных событий. Понимание этих механизмов позволяет создавать эффективные и отзывчивые интерфейсы.