Перейти к содержимому

DOM Events

Event, CustomEvent и EventTarget в среде выполнения без DOM.

На этой странице
Open in ChatGPTOpen in Claude

Elide предоставляет Event, CustomEvent и EventTarget. Дерева DOM нет, поэтому у отправки события одна цель и нет фаз перехвата и всплытия.

Event и CustomEvent

const event = new CustomEvent("tick", {
  detail: 42,
  cancelable: true,
});

События предоставляют стандартные элементы: тип, цель, текущую цель, фазу, отмену, доверенность, метку времени и управление распространением. CustomEvent добавляет detail.

Во время отправки eventPhase равен Event.AT_TARGET, а composedPath() содержит текущую цель. После отправки currentTarget равен null, а composedPath() пуст; target остаётся целью отправки.

EventTarget

const target = new EventTarget();

target.addEventListener("submit", (event) => {
  event.preventDefault();
}, { once: true });

target.dispatchEvent(new Event("submit", { cancelable: true })); // false
target.dispatchEvent(new Event("submit", { cancelable: true })); // true
  • Функциями обратного вызова могут быть функции или объекты с handleEvent().
  • Повторные регистрации (type, callback, capture) игнорируются.
  • Принимаются параметры once, passive, capture и signal.
  • Удаление слушателя во время отправки не даёт ему выполниться позже в той же отправке.
  • Добавление слушателя во время отправки влияет на последующую отправку.
  • Об исключениях в слушателях сообщается без остановки остальных слушателей.
  • dispatchEvent() возвращает false, если отменяемое событие было отменено.

Слушатели, управляемые сигналом, описаны в разделе DOM Abort.

Reference

Status: Full · Not measured · since 1.1.0

Exports

ExportKindStatusNotes
EventclassFulltype, target, currentTarget, NONE, CAPTURING_PHASE, AT_TARGET, BUBBLING_PHASE, eventPhase, composedPath(), stopPropagation(), stopImmediatePropagation(), bubbles, cancelable, preventDefault(), defaultPrevented, composed, isTrusted, timeStamp, cancelBubble
CustomEventclassFulldetail
EventTargetclassFulladdEventListener(), removeEventListener(), dispatchEvent()

Была ли эта страница полезной?