Home
uupaa edited this page Jul 10, 2015
·
16 revisions
EventHandler.js は、DOM の addEventListener, removeEventListener, dispatchEvent を抽象化し汎用性を持たせたものです。
DOM のイベントハンドラによく似た機能を、ライブラリに導入することができます。
function a1(event) {
console.log("call a1. detail: " + JSON.stringify(event.detail));
}
function a2(event) {
console.log("call a2. detail: " + JSON.stringify(event.detail));
}
var event = new EventHandler(["type-a", "type-b"]);
event.on("type-a", a1);
event.on("type-a", a2);
event.fire("type-a", { foo: 1 }); // call a1 and a2 functions with event.detail = { foo: 1 }
event.know("type-b"); // -> true
event.list("type-a"); // -> [a1, a2]
event.off("type-a"); // remove a1 and a2 event handler
event.clear(); // clear all event handler
- window や DOM 以外にも利用できます
- addEventListener を持つオブジェクトをターゲットに指定すると、addEventListener, removeEventListener, dispatchEvent を使用します
-
new EventHandler(eventTypes)
で取り扱うイベントタイプを明記してから使用します - on/off でイベントハンドラを設定/解除できます
- EventHandler#list でイベントハンドラを列挙できます
- EventHandler#clear でイベントハンドラを一斉に削除できます