event.stopImmediatePropagation()Returns: undefined
Description: Keeps the rest of the handlers from being executed and prevents the event from bubbling up the DOM tree.
-
version added: 1.3event.stopImmediatePropagation()
- This method does not accept any arguments.
In addition to keeping any additional handlers on an element from being executed, this method also stops the bubbling by implicitly calling event.stopPropagation()
. To simply prevent the event from bubbling to ancestor elements but allow other event handlers to execute on the same element, we can use event.stopPropagation()
instead.
Use event.isImmediatePropagationStopped()
to know whether this method was ever called (on that event object).
Additional Notes:
- Since the
.live()
method handles events once they have propagated to the top of the document, it is not possible to stop propagation of live events. Similarly, events handled by.delegate()
will propagate to the elements to which they are delegated; event handlers bound on any elements below it in the DOM tree will already have been executed by the time the delegated event handler is called. These handlers, therefore, may prevent the delegated handler from triggering by callingevent.stopPropagation()
or returningfalse
.
Example:
Prevents other event handlers from being called.
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>event.stopImmediatePropagation demo</title> <style> p { height: 30px; width: 150px; background-color: #ccf; } div { height: 30px; width: 150px; background-color: #cfc; } </style> <script src="https://code.jquery.com/jquery-1.10.2.js"></script> </head> <body> <p>paragraph</p> <div>division</div> <script> $( "p" ).click(function( event ) { event.stopImmediatePropagation(); }); $( "p" ).click(function( event ) { // This function won't be executed $( this ).css( "background-color", "#f00" ); }); $( "div" ).click(function( event ) { // This function will be executed $( this ).css( "background-color", "#f00" ); }); </script> </body> </html>