Skip to main content

EventTarget

Trait EventTarget 

Source
pub trait EventTarget: HasHandle {
    // Provided methods
    fn on<E: Event>(
        &self,
        callback: impl FnMut(&E, &EventContext) + 'static,
    ) -> ListenerId { ... }
    fn on_with_options<E: Event>(
        &self,
        callback: impl FnMut(&E, &EventContext) + 'static,
        options: ListenerOptions,
    ) -> ListenerId { ... }
    fn on_capture<E: Event>(
        &self,
        callback: impl FnMut(&E, &EventContext) + 'static,
    ) -> ListenerId { ... }
    fn on_once<E: Event>(
        &self,
        callback: impl FnMut(&E, &EventContext) + 'static,
    ) -> ListenerId { ... }
    fn off(&self, id: ListenerId) { ... }
    fn dispatch_event(&self, event: &dyn Event) -> bool { ... }
}
Expand description

Base trait for anything that can receive events.

Like Chrome’s EventTarget class. Both DOM nodes and Window implement this.

§Methods

MethodDescription
on()Add a typed event listener
on_capture()Add a capture-phase listener
on_once()Add a one-shot listener (auto-removed)
on_with_options()Add with explicit options
off()Remove a listener by ID
dispatch_event()Dispatch an event (capture → target → bubble)

§Example

// Add a click listener to a button.
btn.on::<ClickEvent>(|event, ctx| {
    println!("Button clicked!");
});

// Dispatch an event.
btn.dispatch_event(&ClickEvent);

Provided Methods§

Source

fn on<E: Event>( &self, callback: impl FnMut(&E, &EventContext) + 'static, ) -> ListenerId

Add a typed event listener. Returns an ID for removal.

The callback receives &E (the concrete event) and &EventContext (dispatch state: phase, target, propagation control).

Source

fn on_with_options<E: Event>( &self, callback: impl FnMut(&E, &EventContext) + 'static, options: ListenerOptions, ) -> ListenerId

Add a listener with explicit options.

Options: capture (fire during capture phase), passive (no preventDefault), once (auto-remove after first call).

Source

fn on_capture<E: Event>( &self, callback: impl FnMut(&E, &EventContext) + 'static, ) -> ListenerId

Add a capture-phase listener.

Fires during the capture phase (root → target) instead of bubble phase.

Source

fn on_once<E: Event>( &self, callback: impl FnMut(&E, &EventContext) + 'static, ) -> ListenerId

Add a one-shot listener that auto-removes after first call.

Source

fn off(&self, id: ListenerId)

Remove a listener by its ID.

Source

fn dispatch_event(&self, event: &dyn Event) -> bool

Dispatch an event to this target.

Runs the full capture → target → bubble pipeline. Returns true if the default action was NOT prevented.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl EventTarget for Text

Source§

impl EventTarget for HtmlAbbrElement

Source§

impl EventTarget for HtmlAddressElement

Source§

impl EventTarget for HtmlAnchorElement

Source§

impl EventTarget for HtmlArticleElement

Source§

impl EventTarget for HtmlAsideElement

Source§

impl EventTarget for HtmlAudioElement

Source§

impl EventTarget for HtmlBElement

Source§

impl EventTarget for HtmlBlockquoteElement

Source§

impl EventTarget for HtmlBodyElement

Source§

impl EventTarget for HtmlBrElement

Source§

impl EventTarget for HtmlButtonElement

Source§

impl EventTarget for HtmlCanvasElement

Source§

impl EventTarget for HtmlCiteElement

Source§

impl EventTarget for HtmlCodeElement

Source§

impl EventTarget for HtmlDListElement

Source§

impl EventTarget for HtmlDdElement

Source§

impl EventTarget for HtmlDetailsElement

Source§

impl EventTarget for HtmlDivElement

Source§

impl EventTarget for HtmlDtElement

Source§

impl EventTarget for HtmlEmElement

Source§

impl EventTarget for HtmlFigCaptionElement

Source§

impl EventTarget for HtmlFigureElement

Source§

impl EventTarget for HtmlFooterElement

Source§

impl EventTarget for HtmlFormElement

Source§

impl EventTarget for HtmlHeaderElement

Source§

impl EventTarget for HtmlHeadingElement

Source§

impl EventTarget for HtmlHrElement

Source§

impl EventTarget for HtmlIElement

Source§

impl EventTarget for HtmlImageElement

Source§

impl EventTarget for HtmlInputElement

Source§

impl EventTarget for HtmlKbdElement

Source§

impl EventTarget for HtmlLabelElement

Source§

impl EventTarget for HtmlLiElement

Source§

impl EventTarget for HtmlMainElement

Source§

impl EventTarget for HtmlMarkElement

Source§

impl EventTarget for HtmlNavElement

Source§

impl EventTarget for HtmlOListElement

Source§

impl EventTarget for HtmlParagraphElement

Source§

impl EventTarget for HtmlPreElement

Source§

impl EventTarget for HtmlQElement

Source§

impl EventTarget for HtmlSElement

Source§

impl EventTarget for HtmlSectionElement

Source§

impl EventTarget for HtmlSelectElement

Source§

impl EventTarget for HtmlSmallElement

Source§

impl EventTarget for HtmlSpanElement

Source§

impl EventTarget for HtmlStrongElement

Source§

impl EventTarget for HtmlSubElement

Source§

impl EventTarget for HtmlSummaryElement

Source§

impl EventTarget for HtmlSupElement

Source§

impl EventTarget for HtmlTextAreaElement

Source§

impl EventTarget for HtmlTimeElement

Source§

impl EventTarget for HtmlUElement

Source§

impl EventTarget for HtmlUListElement

Source§

impl EventTarget for HtmlVarElement

Source§

impl EventTarget for HtmlVideoElement

Source§

impl EventTarget for HtmlWbrElement