初心者向けのjQuery入門講座|デザイナー向けのJavaScriptライブラリ

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

.namespace名前空間に設定された名称の取得

構文

名前空間に設定された名称の取得返値:数値
イベントオブジェクト.namespacever1.4.3〜

機能

イベントオブジェクトのnamespaceプロパティを利用するとイベントに設定された名前空間(namespace)を取得できます。ただしtriggerメソッドを利用した時に限ります

名前空間については使い方でも紹介しています。→参考:使い方「イベントを外す」

解説

名前空間に設定された名称を取得します

サンプル(namespace/01.html)を開いてbody内にdiv要素とbutton要素があることを確認してください。jQueryでは、まず以下の部分を確認して下さい。onメソッドを利用してクリック時の処理を設定しているのですが、イベント名「click」に名前空間「myClick」を設定しています。

$("body").on("click.myClick", "div", function (eo){
	alert(eo.namespace);
});

処理の内容は、namespaceプロパティを利用して利用されている名前空間を取得しアラートで表示します。しかしdiv要素をクリックしてもアラートで「undefined」と表示されます。これはnamespaceプロパティがtriggerメソッドによってイベント処理が実行された時にしか機能しないためです

続いて以下の部分を確認して下さい。button要素がクリックされたら、div要素に設定されたmyClickの名前空間が付いたclickイベント「click.myClick」をtriggerで実行します。

$("button").click(function() {
	$("div").trigger("click.myClick");
});

結果としてbuttonをクリックすると、triggerメソッドでイベント処理が実行されアラートで名前空間の「myClick」が表示されます。

メモ

なぜtriggerでしか利用できないのだろう?

なぜnamespaceプロパティはtriggerの時にしか利用できないのだろう?。そのような仕様にすることで何かメリットがあるのだろうか?