Chapter 4. Events
Browser applications operate inside an event loop. The event loop is a browser thread that collects events such as mouse actions and keypresses and passes these events back to the JavaScript engine. To handle events, applications must register callback functions that listen or subscribe to different event types. Since events are the only way for applications to respond to user actions, they are a fundamental component in almost any client-side JavaScript program.
Event handling has evolved over the years, with browsers accreting
different behaviors and quirks around working with events. Despite
well-meaning attempts to clean things up, many of these inconsistencies
persist to the present day. In fact, the Event API is arguably even more volatile
between different browsers than the Node API. Any
application that relies on events needs to protect itself against this
volatility.
YUI addresses the problem using the same strategy described in Chapter 2: by wrapping event objects in a consistent façade that
replicates the W3C DOM Level 2 Event object, with the exception that all
native HTMLElement references are replaced with YUI
Node references. The YUI event façade normalizes all sorts of
browser inconsistencies around event propagation and event object
properties.
Beyond offering normalization and more pleasant APIs, the YUI event façade opens up the possibility of defining entirely new event types. YUI supports four basic categories of events:
DOM events, which enable ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access