@apimediaru/driven-event
v1.0.2
Published
Lots of useful stuff
Downloads
50
Readme
@apimediaru/driven-event
Обертка над объектом браузерного события. Добавляет возможность отслеживать вызов методов управления поведением по умолчанию и всплытия: stopPropagation
, stopImmediatePropagation
и preventDefault
. Штатными средствами отследить возможно только preventDefault
через свойство evt.defaultPrevented
.
Используется в Dispatcher
для управления возможностью обработки вложенных эффектов.
Установка
npm install @apimediaru/driven-event
API
createDrivenEvent(evt: Event): DrivenEvent
import { createDrivenEvent } from '@apimediaru/driven-event';
function compOne(event) {
if (event.target.classList.has('js-stop')) {
event.stopPropagation();
}
}
function compTwo(event) {
if (!event.isPropagationStopped()) {
// Proceed
console.log(event.customProperty);
}
}
function someEventLogic(event) {
event.preventDefault();
compOne(event);
compTwo(event);
}
document.addEventListener('click', (event) => {
someEventLogic(createDrivenEvent(event));
});
Структура объекта события
type: string
Тип события
originalEvent: Event
Ссылка на оригинальное событие браузера
timeStamp?: number
Временная метка в милисекундах момента создания события
target
Ссылка на evt.target
currentTarget
Ссылка на evt.currentTarget
preventDefault(): void
Отменить действие бразуера по умолчанию
isDefaultPrevented(): boolean
Возвращает true
если действие браузера по умолчанию было прекращено
stopPropagation(): void
Прекратить всплытие события
isPropagationStopped(): boolean
Возвращает true
если всплытие было остановлено
stopImmediatePropagation: () => void
Останавливает цепочку вызова событий для последующих обработчиков DOM-элемента
isImmediatePropagationStopped(): boolean
Возвращает true
если у экземпляра DrivenEvent
был вызыван метод stopImmediatePropagation
simulate(): void
По умолчанию DrivenEvent
полностью повторяет логику управления всплытием и действием браузера по умолчанию, однако это поведение можно отключить. Тогда фоном DrivenEvent
не будет вызывать стандартные методы, но можно по прежнему отследить были ли вызываны функции у класса-обертки.