Event delegation
Event delegation allows us to attach a single event listener to a parent element. This event will fire for all the descendants matching a selector even if these descendants will be created in the future (after the listener was bound to the element).
We discussed event bubbling earlier. Event delegation in jQuery works primarily due to event bubbling. Whenever an event occurs on a page, the event bubbles up from the element that it originated from, up to its parent, then up to the parent's parent, and so on, until it reaches the root element (window
). Consider the following example:
<html> <body> <div id="container"> <ul id="list"> <li><a href="http://google.com">Google</a></li> <li><a href="http://myntra.com">Myntra</a></li> <li><a href="http://bing.com">Bing</a></li> </ul> </div> </body> </html>
Now let's say...