1. ホーム
  2. javascript

[解決済み] stopPropagationとstopImmediatePropagationの比較

2022-03-25 15:39:32

質問

とはどう違うのですか? event.stopPropagation()event.stopImmediatePropagation() ?

解決方法は?

stopPropagation を防ぐことができます。 ハンドラが実行されないようにする stopImmediatePropagation は、親ハンドラ また 任意の その他 ハンドラを実行しないようにする

の簡単な例です。 jqueryのドキュメントです。

$("p").click(function(event) {
  event.stopImmediatePropagation();
});

$("p").click(function(event) {
  // This function won't be executed
  $(this).css("background-color", "#f00");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<p>example</p>

ここでは、イベントバインディングの順序が重要であることに注意してください!

$("p").click(function(event) {
  // This function will now trigger
  $(this).css("background-color", "#f00");
});

$("p").click(function(event) {
  event.stopImmediatePropagation();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<p>example</p>