デザイナーにも分かりやすいjQuery入門講座|jQueryの使い方

このエントリーをはてなブックマークに追加
索引
Core:コアとなる仕組み
Selectors:セレクタ
Attributes:属性
Traversing:対象の変更
Manipulation:操作
CSS:スタイルシート
Events:イベント
Effects:演出効果
Ajax:xml等との連携
Utilities:ユーティリティ
Data:データ
Miscellaneous:諸々
Deferred:処理管理
Callbacks:コールバック
Internals:内部処理

.isImmediatePropagationStopped( )stopImmediatePropagationメソッドが実行されたかを調査

構文

stopImmediatePropagationメソッドが実行されたかを調査返値:true/false
イベントオブジェクト.isImmediatePropagationStopped( )ver1.3〜

機能

イベントオブジェクトに対しisImmediatePropagationStoppedメソッドを利用すると、そのイベントオブジェクトがstopImmediatePropagationメソッドを実行したか否かを調査します。利用していた場合はtrueを、していない場合はfalseを返します。

このメソッドはstopImmediatePropagationメソッドを先に理解している必要があります。

解説

immediatePropagationStoppedメソッドが実行されたかを調査する

サンプル(isImmediatePropagationStopped/01.html)を開いてbody内にdiv要素が1つあることを確認してください。jQueryは以下の様に記述され、div要素がクリックされたらstopImmediatePropagationメソッドを利用して、バブリングを停止しています。そして3行目でisImmediatePropagationStoppedメソッドを利用しているか否かを調査し、その結果をアラートで表示します。

$("div").click(function(eo){
	eo.stopImmediatePropagation();
	alert(eo.isImmediatePropagationStopped());
});

結果として、div要素をクリックするとアラートで「true」と表示されます。

stopImmediatePropagationメソッドを利用しないサンプルも用意しました。
サンプル(isImmediatePropagationStopped/01b.html)を開いて、以下の様にstopImmediatePropagationメソッドがコメントアウトされているのを確認して下さい。

$("div").click(function(eo){
	//eo.stopImmediatePropagation();
	alert(eo.isImmediatePropagationStopped());
});

結果として、div要素をクリックするとアラートで「false」と表示されます。

メモ

イベントオブジェクトを使いまわす

何となく、少しややこしいサンプルを作成してみました。イベントオブジェクトは引数で他のfunctionに渡すことができます。渡された先のfunctionでstopImmediatePropagationメソッドを利用を利用されても、isImmediatePropagationStoppedメソッドできちんと調査できます。

サンプル(isImmediatePropagationStopped/test01.html)のjQueryは以下の様に記述されています。4行目でクリック時に実行するfunctionが設定されており、5行目でイベントオブジェクトをaaaFuncに渡しています。そしてaaaFunc(1〜3行目)で、そのイベントオブジェクトに対しstopImmediatePropagationメソッドを利用しました。

function aaaFunc(myEO){
	myEO.stopImmediatePropagation();
}
$("div").click(function(eo){
	aaaFunc(eo);
	alert(eo.isImmediatePropagationStopped());
});

イベントオブジェクト名は「eo」から「myEO」になっていますが、イベントオブジェクトとしては同一(参照の値渡し)のため、6行目の「eo.isImmediatePropagationStopped()」によって、stopImmediatePropagationメソッドの利用を確認することができます。