event.isImmediatePropagationStopped() returns whether event.stopImmediatePropagation() was called on this event. This tutorial covers the official button demo, blocking remaining handlers on the same element, comparing with stopPropagation() and isPropagationStopped(), and coordinating multiple listeners.
01
Method
isImmediatePropagationStopped()
02
Returns
Boolean
03
Official
not called → called
04
stopImmediate
Sets flag
05
Handlers
Same element
06
Since 1.3
No arguments
Fundamentals
Introduction
When you bind multiple handlers to the same element with .on(), jQuery runs them in registration order during one event dispatch. Sometimes an early handler must stop the rest — not just parent bubbling, but every remaining listener on that element.
Calling event.stopImmediatePropagation() does that. To check whether it already happened — in the same handler or a helper — call event.isImmediatePropagationStopped(). jQuery has exposed this since version 1.3 on its normalized event object.
This method answers one question: was immediate propagation stopped on this event?
Before stopImmediatePropagation — event.isImmediatePropagationStopped() returns false.
After stopImmediatePropagation — returns true for the rest of that dispatch.
Read-only — takes no arguments; does not change state.
Same element only — remaining handlers on the bound element are skipped; parent handlers may still run unless propagation was also stopped.
💡
Beginner Tip
stopPropagation() stops bubbling up the DOM. stopImmediatePropagation() stops bubbling and skips other handlers on the same element. Use isImmediatePropagationStopped() to check whether that stronger stop already ran.
Foundation
📝 Syntax
Official jQuery API form (since 1.3):
jQuery
event.isImmediatePropagationStopped()
// typical pattern:
$( "button" ).on( "click", function ( event ) {
if ( !event.isImmediatePropagationStopped() ) {
// immediate stop not called yet
}
event.stopImmediatePropagation();
if ( event.isImmediatePropagationStopped() ) {
// now true
}
});
Parameters
None — this method does not accept any arguments.
Return value
Boolean — true if event.stopImmediatePropagation() was called on this event object; otherwise false.
stopImmediatePropagation() sets an internal flag on the event object. isImmediatePropagationStopped() reads that flag — the official demo proves the transition within one handler.
Example 2 — Handler queue: third handler never runs
Three click handlers on one button — the second calls stopImmediatePropagation(), so the third is skipped.
Empty name → "Validation failed — immediate stopped: true"
Filled name → "Save handler ran — form would submit."
How It Works
When bind order is controlled, validation can halt the handler queue; downstream handlers read isImmediatePropagationStopped() or simply never run if they are registered after the stop.
Applications
🚀 Common Use Cases
Debug handler order — log isImmediatePropagationStopped() after each handler runs.
Validation gates — invalid state stops immediate propagation before save handlers.
Analytics helpers — skip tracking when a primary handler already stopped the queue.
Plugin stacks — third-party scripts check the flag before adding behavior.
One-shot buttons — first click stops remaining toggle handlers on the same element.
Testing — assert the flag after simulating clicks in Try-it labs.
🧠 How isImmediatePropagationStopped() Works
1
Event fires
User clicks — jQuery runs handlers on the element in registration order; immediate flag starts false.
Start
2
Early handlers
isImmediatePropagationStopped() returns false until something calls stopImmediatePropagation().
Check
3
stopImmediatePropagation()
Handler sets the flag — remaining listeners on the same element are skipped for this dispatch.
Stop
4
✓
Flag stays true
Later code in the same handler or helpers read isImmediatePropagationStopped() === true.
Important
📝 Notes
Available since jQuery 1.3 — returns a Boolean.
Takes no arguments — read-only query method.
Reports whether stopImmediatePropagation() was ever called on this event object.
Does not report default-prevented state — use isDefaultPrevented() for that.
stopImmediatePropagation() also stops bubbling (like stopPropagation()).
Introduced in DOM Level 3; jQuery normalizes it across supported browsers.
Compatibility
Browser Support
event.isImmediatePropagationStopped() is part of jQuery’s normalized event object since jQuery 1.3+. It mirrors the native immediate-propagation-stopped flag across browsers jQuery supports, including environments where inspecting the raw event was inconsistent.
✓ jQuery 1.3+ · all browsers
jQuery event.isImmediatePropagationStopped()
Check whether immediate propagation was stopped.
100%Universal
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
isImmediatePropagationStopped()Boolean
Bottom line: Call stopImmediatePropagation() to halt the handler queue — call isImmediatePropagationStopped() to verify.
Wrap Up
Conclusion
event.isImmediatePropagationStopped() tells you whether the handler queue on the current element was halted. The official demo shows it flip from “not called” to “called” immediately after stopImmediatePropagation().
Use it when multiple handlers share one element and later code must respect an earlier stop — especially with validation, analytics, and stacked plugins.
Call event.stopImmediatePropagation() explicitly when you must skip remaining handlers
Check isImmediatePropagationStopped() in shared helpers
Control bind order — run validation handlers before save handlers
Log the flag while debugging multi-handler bugs
Pair with stopImmediatePropagation() — one stops, one verifies
❌ Don’t
Call isImmediatePropagationStopped() expecting to reset the flag
Confuse with isPropagationStopped() or isDefaultPrevented()
Assume return false sets the immediate flag — it does not
Use stopImmediatePropagation when stopPropagation alone is enough
Bind critical handlers after a plugin that may stop immediate propagation
Summary
Key Takeaways
Knowledge Unlocked
Five things to remember about isImmediatePropagationStopped()
Read whether the handler queue was halted.
5
Core concepts
?01
isImmediatePropagationStopped
Boolean check
API
stop02
stopImmediatePropagation
Sets true
Pair
demo03
Official
not called → called
Demo
queue04
Handler queue
Same element
Use
vs05
stopPropagation
Different flag
Compare
❓ Frequently Asked Questions
event.isImmediatePropagationStopped() returns true if event.stopImmediatePropagation() was called on this event object at any point during handler execution, and false otherwise. It is a read-only check with no arguments. Available since jQuery 1.3.
Use it when multiple handlers are bound to the same element and a later handler (or helper function) needs to know whether an earlier handler already called stopImmediatePropagation() — for example, skipping analytics or secondary UI updates when a primary handler halted the handler queue.
stopPropagation() stops the event from bubbling to parent elements but other handlers on the same element still run. stopImmediatePropagation() stops both bubbling and any remaining handlers registered on the same element for this dispatch.
No. isPropagationStopped() reports whether stopPropagation() was called. isImmediatePropagationStopped() reports whether stopImmediatePropagation() was called. Calling stopImmediatePropagation() also stops propagation, but stopPropagation() alone does not set the immediate flag.
No. isImmediatePropagationStopped() only reports state — it does not reset the flag. Once stopImmediatePropagation() runs, remaining handlers on that element are skipped for the current dispatch.
In jQuery handlers, return false calls preventDefault() and stopPropagation(), not stopImmediatePropagation(). Remaining handlers on the same element may still run unless you explicitly call stopImmediatePropagation().
Did you know?
jQuery added isImmediatePropagationStopped() alongside isPropagationStopped() and isDefaultPrevented() in version 1.3 — giving handlers three read-only checks for the three main event flags. The underlying behavior comes from DOM Level 3’s stopImmediatePropagation().