Elide exposes Event, CustomEvent, and EventTarget. There is no DOM
tree, so dispatch has one target and no capture or bubble traversal.
Event and CustomEvent
const event = new CustomEvent("tick", {
detail: 42,
cancelable: true,
});Events expose the standard type, target, current target, phase, cancellation,
trust, timestamp, and propagation members. CustomEvent adds detail.
During dispatch, eventPhase is Event.AT_TARGET and
composedPath() contains the current target. After dispatch,
currentTarget is null and composedPath() is empty; target remains
the dispatch 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- Callbacks may be functions or objects with
handleEvent(). - Duplicate
(type, callback, capture)registrations are ignored. once,passive,capture, andsignaloptions are accepted.- Removing a listener during dispatch prevents that listener from running later in the same dispatch.
- Adding a listener during dispatch affects a later dispatch.
- Listener exceptions are reported without stopping remaining listeners.
dispatchEvent()returnsfalsewhen a cancelable event was prevented.
See DOM Abort for signal-controlled listeners.