Altering the journey: the event object
We have already seen one situation in which event bubbling
can cause problems. To show a case in which .hover()
does not help our cause, we'll alter the collapsing behavior we implemented earlier.
Suppose we wish to expand the clickable area that triggers the collapsing or expanding of the style switcher. One way to do this is to move the event handler from the label, <h3>
, to its containing <div>
element:
// Unfinished code $(document).ready(function() { $('#switcher').click(function() { $('#switcher button').toggleClass('hidden'); }); });
Listing 3.12
This alteration makes the entire area of the style switcher clickable to toggle its visibility. The downside is that clicking on a button also collapses the style switcher after the style on the content has been altered. This is due to event bubbling; the event is first handled by the buttons, then passed up through the DOM tree until it reaches the <div id="switcher">
, where our...