jQuery event.isImmediatePropagationStopped()

Beginner
5 min read
Updated: Oct 2026
5 examples
Live preview

What Is event.isImmediatePropagationStopped()?

Returns a Boolean: true if event.stopImmediatePropagation() was called on this event, otherwise false. Added in jQuery 1.3. Takes no arguments.

Remember
event.isImmediatePropagationStopped()  // Boolean — no args

// Official idea
$("button").on("click", function (event) {
  event.isImmediatePropagationStopped(); // false → "not called"
  event.stopImmediatePropagation();
  event.isImmediatePropagationStopped(); // true  → "called"
});

// stopImmediate = skip remaining same-element handlers + stop bubble
// stopPropagation = stop bubble only (same-element handlers still run)
NeedUse
Halt remaining handlersevent.stopImmediatePropagation()
Check if haltedevent.isImmediatePropagationStopped()
Stop bubble onlyevent.stopPropagation()
Check bubble stopevent.isPropagationStopped()
Bind handlers.on("click", fn)

How to Use isImmediatePropagationStopped()

Call it on the event object before or after stopImmediatePropagation().

  1. Bind one or more handlers on the same element with .on().
  2. In a handler (or helper), call event.isImmediatePropagationStopped().
  3. Call event.stopImmediatePropagation() when the queue must end.
  4. Call the check again — now true (“called” in the official demo).
  5. Remember: later handlers on that element will not run for this click.
PieceRequired?Role
eventYesjQuery event object in the handler
stopImmediatePropagation()To haltSets the flag this method reads
isImmediatePropagationStopped()—Returns true / false
ArgumentsNoneMethod takes no parameters

Pseudocode

Pseudocode
element.on("click", handlerA)
element.on("click", handlerB)

when click fires:
    call handlerA(event):
        isImmediatePropagationStopped() → false
        if need to halt queue:
            stopImmediatePropagation()
            isImmediatePropagationStopped() → true
    // handlerB is NOT called

// With stopPropagation() only:
    handlerB still runs; parents do not

Cheat Sheet

Keep these facts handy while coordinating multiple handlers.

TopicDetail
ReturnsBoolean
SincejQuery 1.3
ArgumentsNone
Official demonot called → stop → called
Also stops bubble?Yes — implies stopPropagation()
return falseDoes not set this flag
DOM noteRelated idea introduced in DOM Level 3
Official docsapi.jquery.com/…

Live Preview

Click the button. See not called then called — same idea as the official jQuery API demo.

Demo

Checks the flag, calls stopImmediatePropagation(), checks again.

Log
Waiting — click the button.

jQuery Examples

Short, copy-ready snippets. Open DevTools, or use Try It Yourself for a live editor.

Example 1 — Official: Not Called, Then Called

Log the flag before and after stopImmediatePropagation().

jQuery
function immediatePropStopped(event) {
  var msg = event.isImmediatePropagationStopped()
    ? "called"
    : "not called";
  $("#out").append(msg + "\\n");
}

$("button").on("click", function (event) {
  $("#out").text("");
  immediatePropStopped(event);
  event.stopImmediatePropagation();
  immediatePropStopped(event);
});
Try It Yourself

How It Works

  1. Helper. Reads the flag and appends called / not called.
  2. Before. Nothing stopped yet → not called.
  3. Stop. stopImmediatePropagation() sets the flag.
  4. After. Same check → called.

Example 2 — Second Handler Never Runs

Halt the queue so a later same-element handler is skipped.

jQuery
$("#btn").on("click", function (event) {
  $("#out").text("Handler A ran.\\n");
  event.stopImmediatePropagation();
});

$("#btn").on("click", function () {
  $("#out").append("Handler B ran."); // never runs
});
Try It Yourself

How It Works

  1. Two binds. A and B are both on #btn.
  2. A runs first. It logs, then stops immediately.
  3. B skipped. Remaining same-element handlers are not called.
  4. Check. Inside A after stop, isImmediatePropagationStopped() is true.

Example 3 — stopPropagation Still Runs Handler B

Contrast: bubble stops, but same-element handlers continue.

jQuery
$("#btn").on("click", function (event) {
  event.stopPropagation();
  $("#out").text(
    "immediate? " + event.isImmediatePropagationStopped() + "\\n" +
    "propagation? " + event.isPropagationStopped() + "\\n"
  );
});

$("#btn").on("click", function () {
  $("#out").append("Handler B still ran.");
});
Try It Yourself

How It Works

  1. stopPropagation. Blocks parents only.
  2. Immediate flag. Stays false.
  3. Propagation flag. Becomes true.
  4. Handler B. Still runs on the same button.

Example 4 — Shared Helper Reads the Flag

Reuse one function to report state — official pattern.

jQuery
function report(event) {
  $("#out").append(
    (event.isImmediatePropagationStopped()
      ? "called"
      : "not called") + "\\n"
  );
}

$("#btn").on("click", function (event) {
  $("#out").text("");
  report(event);
  if ($("#halt").prop("checked")) {
    event.stopImmediatePropagation();
  }
  report(event);
});
Try It Yourself

How It Works

  1. Helper. Only reads isImmediatePropagationStopped().
  2. Optional stop. Checkbox decides whether to halt.
  3. Second report. Shows called only after a stop.
  4. Reuse. Same helper works before and after the stop call.

Example 5 — Parent Does Not Receive the Bubble

stopImmediatePropagation() also stops bubbling to parents.

jQuery
$("#child").on("click", function (event) {
  event.stopImmediatePropagation();
  $("#out").text(
    "child stopped. immediate? " +
    event.isImmediatePropagationStopped()
  );
});

$("#parent").on("click", function () {
  $("#out").append("\\nparent ran"); // does not run
});
Try It Yourself

How It Works

  1. Child. Calls stopImmediatePropagation().
  2. Flag. isImmediatePropagationStopped() is true.
  3. Bubble. The event does not reach #parent.
  4. Result. Only the child message appears.

Edge Cases & Pitfalls

Watch for these when using isImmediatePropagationStopped().

read-only

Cannot undo the halt

Once stopImmediatePropagation() runs, remaining handlers on that element are skipped for this dispatch.

order

Bind order matters

Only handlers registered after the one that stops are skipped. Earlier ones already ran.

return false

return false is weaker

It does not set the immediate flag. Same-element handlers may still run.

vs stop

Not the same as isPropagationStopped()

Use isPropagationStopped() for plain stopPropagation() state.

Browser Support

event.isImmediatePropagationStopped() is a jQuery event-object method available since 1.3. The related stop/check APIs align with DOM Level 3 event ideas. Works wherever your loaded jQuery version runs.

✓ Stable · jQuery 1.3+

isImmediatePropagationStopped()

Supported in jQuery 1.3–3.x. Prefer jQuery 3.x with .on() handlers. Pair with stopImmediatePropagation() to halt the same-element handler queue.

100% With jQuery 1.3+
Google Chrome All versions · Desktop & Mobile
Full support
Mozilla Firefox All versions · Desktop & Mobile
Full support
Apple Safari All versions · macOS & iOS
Full support
Microsoft Edge All versions · Chromium & Legacy
Full support
Internet Explorer IE 6+ · Legacy environments
Full support
Opera All modern versions
Full support
isImmediate…Stopped jQuery 1.3+

Bottom line: Safe for production. Call stopImmediatePropagation() to halt; call isImmediatePropagationStopped() to ask whether it already happened.

Performance Notes

ApproachCostBest for
isImmediatePropagationStopped()FreeReading a boolean flag
stopImmediatePropagation()CheapEnding a busy same-element queue early
Many handlers per elementCan add upStop early when work is done

The check itself is free. The win is skipping leftover handlers you no longer need for that click.

Key Takeaways

  • Role: ask whether stopImmediatePropagation() already ran.
  • Official: not called → stop → called.
  • Effect: remaining same-element handlers + bubbling are stopped.
  • vs stopPropagation: weaker — B still runs; immediate flag stays false.

One line: isImmediatePropagationStopped() answers “did someone already kill this element’s handler queue?”

Frequently Asked Questions

It returns true if event.stopImmediatePropagation() was called on this event object, and false otherwise. It takes no arguments. Available since jQuery 1.3.
When a helper or later logic needs to know whether the handler queue on this element was already halted — for example, skipping analytics after a primary handler called stopImmediatePropagation().
stopPropagation() stops bubbling to parents but other handlers on the same element still run. stopImmediatePropagation() stops remaining same-element handlers and also stops bubbling.
No. isPropagationStopped() reports stopPropagation(). isImmediatePropagationStopped() reports stopImmediatePropagation(). Calling stopImmediate also implies propagation was stopped, but stopPropagation alone does not set the immediate flag.
No. The check is read-only. Once stopImmediatePropagation() runs, remaining handlers on that element are skipped for the current dispatch.
No. In jQuery, return false calls preventDefault() and stopPropagation() only. Remaining handlers on the same element may still run unless you call stopImmediatePropagation() explicitly.

Next: stopPropagation()

Stop bubbling while letting same-element handlers finish.

stopPropagation tutorial →

About the author

Mari Selvan M P
Mari Selvan M P 🔗

Developer, cloud engineer, and technical writer

  • Experience 12 years building web and cloud systems
  • Focus Full Stack Development, AWS, and Developer Education

I write practical tutorials so students and working developers can learn by doing—from databases and APIs to deployment on AWS.

9 people found this page helpful