Using Event Utility and Event Delegation to Improve Performance

Event delegation is a technique whereby you use a single event handler on a parent element to listen for interactions that affect the parent's descendant elements; because events on the descendant elements will bubble up to the parent, this can be a reliable and extremely efficient mitigation strategy for reducing the number of resource-consuming event handlers you have on any given page. (You can read more about Event Delegation in this YUIBlog article.)

In the example below, mousing over an item in the list will change its background color to yellow. Clicking an item will change its background color to red. Because we're using event delegation, only one event listener is needed for each type of event (click, mouseover, and mouseout), regardless of the size of the list. To illustrate this point, click the "Add Item" button to append more items to list. An infinite number of items can be added to the list, and still just one click, mouseover, and mouseout event handler is required to highlight the items.