Skip to content
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

EventHandler の特徴

  • window や DOM 以外にも利用できます
    • addEventListener を持つオブジェクトをターゲットに指定すると、addEventListener, removeEventListener, dispatchEvent を使用します
  • new EventHandler(eventTypes)で取り扱うイベントタイプを明記してから使用します
  • on/off でイベントハンドラを設定/解除できます
  • EventHandler#list でイベントハンドラを列挙できます
  • EventHandler#clear でイベントハンドラを一斉に削除できます
Clone this wiki locally