Объект события в Zepto.js представляет собой объект,
который содержит информацию о произошедшем событии и предоставляет
методы для управления его поведением. Он является аналогом
Event в стандартном DOM API, но Zepto добавляет ряд
упрощений и удобных функций для работы с событиями.
При привязке обработчика события через методы .on() или
.bind(), объект события автоматически передается в качестве
первого аргумента функции-обработчика:
$('#button').on('click', function(event) {
console.log(event.type); // 'click'
console.log(event.target); // элемент, на котором произошло событие
});
event — экземпляр объекта
события.event.type — тип события
(click, keydown, mouseenter и
т.д.).event.target — элемент, на котором
изначально произошло событие.event.currentTarget — элемент, на
котором установлен обработчик.Zepto автоматически нормализует свойства события, обеспечивая совместимость с разными браузерами.
type — строка, содержащая тип
события.target — элемент, инициировавший
событие.currentTarget — элемент, на котором
висит обработчик.relatedTarget — вспомогательный
элемент для событий, связанных с навигацией курсора (например,
mouseover и mouseout).timeStamp — время возникновения
события.isDefaultPrevented() — метод,
возвращающий true, если действие по умолчанию было
предотвращено.isPropagationStopped() — метод,
проверяющий, остановлено ли всплытие события.isImmediatePropagationStopped() —
проверяет, была ли остановлена немедленная передача события.Zepto расширяет стандартные методы управления событиями и упрощает их использование.
preventDefault() Препятствует
выполнению действия по умолчанию для события.$('a').on('click', function(event) {
event.preventDefault(); // ссылка не будет переходить
});
stopPropagation() Останавливает
дальнейшее распространение события по DOM.$('#inner').on('click', function(event) {
event.stopPropagation();
});
stopImmediatePropagation()
Останавливает распространение события и предотвращает вызов других
обработчиков на том же элементе.$('#inner').on('click', function(event) {
event.stopImmediatePropagation();
});
pageX и pageY Координаты
курсора относительно страницы для событий мыши. Zepto нормализует эти
значения для всех браузеров.$(document).on('mousemove', function(event) {
console.log(event.pageX, event.pageY);
});
which Номер клавиши для клавиатурных
событий или кнопки мыши для мышиных событий. Zepto делает
кроссбраузерную нормализацию.Zepto поддерживает делегирование событий с помощью
передачи селектора вторым аргументом в метод .on():
$('#list').on('click', 'li', function(event) {
console.log(event.target); // элемент li, на который кликнули
console.log(event.currentTarget); // элемент #list
});
event.target указывает на элемент, где
произошло событие.event.currentTarget всегда ссылается
на элемент, на котором привязан обработчик (#list).Это позволяет эффективно обрабатывать динамически создаваемые элементы без необходимости повторного привязывания обработчиков.
data — Zepto позволяет привязать
данные к событию через объект event.data при использовании
.on():$('#button').on('click', {key: 'value'}, function(event) {
console.log(event.data.key); // 'value'
});
namespace — Zepto поддерживает
пространственные имена для событий:$('#button').on('click.myNamespace', function(event) {
console.log('Click в пространстве myNamespace');
});
Использование пространственных имен позволяет избирательно удалять обработчики:
$('#button').off('.myNamespace'); // удаляет все обработчики с namespace myNamespace
event.pageX и event.pageY.event.preventDefault() и
event.stopPropagation().event.target
вместо this, так как this ссылается на
event.currentTarget.Объект события в Zepto является мощным инструментом, обеспечивающим удобный и унифицированный доступ к информации о событиях, их управлению и взаимодействию с элементами DOM. Благодаря нормализации свойств и методов, обработчики становятся более предсказуемыми и кроссбраузерными.