Struct virtual_node::event::EventsByNodeIdx
source · [−]pub struct EventsByNodeIdx { /* private fields */ }Expand description
Node’s in a VirtualNode tree are indexed depth first, where the first node is index 0, it’s first child node is index 1, and the first child’s first child is index 2.
When we create a DOM node, we store all of it’s closures and all of it’s children’s closures in this map.
We also set a .__nodeIdx property on nodes that have one or more events.
Percy will sometimes use event delegation, and other times attach events directly to DOM elements, depending on the kind of event.
The .__nodeIdx property is used to power event delegation, so that the main event handler can
look up the callback.
Cloning
EventsByNodeIdx can be cheaply cloned and passed around. Clones share the same inner data.
Implementations
sourceimpl EventsByNodeIdx
impl EventsByNodeIdx
sourcepub fn events_id_props_prefix(&self) -> f64
pub fn events_id_props_prefix(&self) -> f64
Unique for every PercyDom so that if multiple instances of PercyDom are nested their event delegation handlers don’t collide.
sourcepub fn insert_managed_event(
&self,
node_idx: u32,
event_name: EventName,
event: ManagedEvent
)
pub fn insert_managed_event(
&self,
node_idx: u32,
event_name: EventName,
event: ManagedEvent
)
Insert a newly tracked event.
Panics
Panics if the event_name is delegated and the event is not, or vice versa.
sourcepub fn overwrite_event_attrib_fn(
&self,
node_idx: u32,
event_name: &EventName,
event: EventHandler
)
pub fn overwrite_event_attrib_fn(
&self,
node_idx: u32,
event_name: &EventName,
event: EventHandler
)
sourcepub fn move_events(&mut self, old_node_id: &u32, new_node_id: u32)
pub fn move_events(&mut self, old_node_id: &u32, new_node_id: u32)
Remove all of the events from one node ID and add them to another node ID.
sourcepub fn remove_managed_event(
&mut self,
node_id: &u32,
event_name: &EventName
) -> ManagedEvent
pub fn remove_managed_event(
&mut self,
node_id: &u32,
event_name: &EventName
) -> ManagedEvent
Remove a managed event.
sourcepub fn get_event_handler(
&self,
node_id: &u32,
event_name: &EventName
) -> Option<EventHandler>
pub fn get_event_handler(
&self,
node_id: &u32,
event_name: &EventName
) -> Option<EventHandler>
Get the event handler for a node.
sourcepub fn remove_event_handler(
&self,
node_id: &u32,
event_name: &EventName
) -> Option<ManagedEvent>
pub fn remove_event_handler(
&self,
node_id: &u32,
event_name: &EventName
) -> Option<ManagedEvent>
Remove an event handler.
sourcepub fn remove_node(&self, node_id: &u32)
pub fn remove_node(&self, node_id: &u32)
Remove all event handlers for a node.
Trait Implementations
sourceimpl Clone for EventsByNodeIdx
impl Clone for EventsByNodeIdx
sourcefn clone(&self) -> EventsByNodeIdx
fn clone(&self) -> EventsByNodeIdx
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
Auto Trait Implementations
impl !RefUnwindSafe for EventsByNodeIdx
impl !Send for EventsByNodeIdx
impl !Sync for EventsByNodeIdx
impl Unpin for EventsByNodeIdx
impl !UnwindSafe for EventsByNodeIdx
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more