event.stopImmediatePropagation() does two things: it skips any remaining handlers on the same element, and it stops bubbling (implicitly calls stopPropagation()). Takes no arguments, returns undefined. Since jQuery 1.3. Check with isImmediatePropagationStopped().
Remember
event.stopImmediatePropagation() // no args
// Same element: remaining handlers are skipped
// Ancestors: bubbling is stopped (like stopPropagation)
// Need other same-element handlers to still run?
// → use stopPropagation() instead
Call it early when this handler must own the event completely.
Bind more than one handler on the same element (or expect parent handlers).
In the handler that should win, call event.stopImmediatePropagation().
Any later handlers on that element will not run.
Parent / document handlers will not see the event either.
Optionally check with event.isImmediatePropagationStopped().
Piece
Required?
Role
event argument
Yes
jQuery event object
stopImmediatePropagation()
Yes (to halt)
Skip remaining + stop bubble
Handler order
Yes
Only handlers after the call are skipped
preventDefault()
Optional
Separate — cancels browser default
Pseudocode
Pseudocode
element.on("click", handlerA)
element.on("click", handlerB) // later
parent.on("click", handlerParent)
when click fires on element:
run handlerA
if handlerA calls stopImmediatePropagation():
skip handlerB
do not bubble to parent
else:
run handlerB
bubble to parent (unless stopPropagation)
Reference
Cheat Sheet
Keep these facts handy while controlling handler queues.
Topic
Detail
Syntax
event.stopImmediatePropagation()
Arguments
None
Returns
undefined
Since
jQuery 1.3
Same-element handlers
Remaining ones skipped
Bubbling
Stopped (calls stopPropagation)
vs stopPropagation
That one still runs same-element handlers
vs return false
false ≠ immediate stop
Try it
Live Preview
Click the paragraph — handler 2 is skipped. Click the division — its handler still runs. Same idea as the official jQuery API demo.
Click
First p handler calls stopImmediatePropagation() — second p handler never runs.
Log
Click paragraph or division.
Code
jQuery Examples
Short, copy-ready snippets. Open DevTools, or use Try It Yourself for a live editor.
Example 1 — Official Demo: Skip Second Handler
First p handler stops immediate; second never runs; div still works.
jQuery
$("p").on("click", function (event) {
event.stopImmediatePropagation();
$("#out").append("p handler 1 ran — immediate stopped\n");
});
$("p").on("click", function () {
$("#out").append("p handler 2 ran (skipped)\n");
});
$("div").on("click", function () {
$("#out").append("div handler ran\n");
});
Fail. Calls stopImmediatePropagation() and shows an error.
Pass. Second handler runs only if not stopped.
Guard.isImmediatePropagationStopped() is a clear early return.
Edge Cases & Pitfalls
Watch for these when stopping immediate propagation.
vs stop
Stronger than stopPropagation()
stopPropagation still allows other handlers on the same element. Immediate does not.
false
return false is not enough
jQuery’s return false = preventDefault + stopPropagation — not stopImmediatePropagation.
default
Does not cancel defaults
Links still navigate and forms still submit unless you also call preventDefault().
order
Only stops handlers after you
Handlers already bound and run before your call have already executed. Bind order matters.
Compatibility
Browser Support
event.stopImmediatePropagation() has been available since jQuery 1.3. Modern browsers also provide the native method; jQuery normalizes it on the event object. Works wherever your loaded jQuery version runs.
✓ Stable · jQuery 1.3+
event.stopImmediatePropagation()
Supported wherever jQuery 1.3+ is loaded. Prefer jQuery 3.x with .on() for modern multi-handler code.
100%jQuery support
Google ChromeAll versions · Desktop & Mobile
Full support
Mozilla FirefoxAll versions · Desktop & Mobile
Full support
Apple SafariAll versions · macOS & iOS
Full support
Microsoft EdgeAll versions · Chromium & Legacy
Full support
Internet ExplorerIE 6+ · Legacy environments
Full support
OperaAll modern versions
Full support
stopImmediatePropagation()1.3+
Bottom line: Safe for production when one handler must own the event. Pair with isImmediatePropagationStopped() and preventDefault() as needed.
Analysis
Performance Notes
Approach
Cost
Best for
stopImmediatePropagation()
Negligible
Halting a handler queue early
Many handlers then stop
Wasted work if late
Call stop in the earliest owning handler
stopPropagation() only
Negligible
When same-element handlers must still run
Unnecessary immediate stops
Surprising bugs
Use only when you truly need exclusive control
The method itself is cheap. The win is skipping work — call it as soon as you know no other handler should run.
Remember
Key Takeaways
Role: skip remaining same-element handlers and stop bubbling.
vs stopPropagation: that one still runs other handlers on the same element.
One line:stopImmediatePropagation() means “no more handlers here, and nowhere up the tree.”
Frequently Asked Questions
It keeps any remaining handlers on the same element from running and prevents the event from bubbling up the DOM. It implicitly calls stopPropagation(). Takes no arguments and returns undefined. Available since jQuery 1.3.
When an early handler must halt the handler queue on that element — for example, validation that should block later save/analytics handlers on the same button.
stopPropagation() stops bubbling to parents but other handlers on the same element still run. stopImmediatePropagation() stops both remaining same-element handlers and bubbling.
No. In jQuery, return false calls preventDefault() and stopPropagation(), not stopImmediatePropagation(). Remaining same-element handlers may still run.
Use event.isImmediatePropagationStopped(). It returns true if stopImmediatePropagation() was called on this event object during the current dispatch.
No. It only affects handler execution and bubbling. To cancel link navigation or form submit, call event.preventDefault() separately.