Prototype 1.6.0 で大きく進化したイベント API (3)

2007/09/22 9:28am

Prototype 1.6.0 RC イベント API の進化、更なるつづき。

Event.stopObserving で複数のイベント登録を解除できるようになった

イベントのコールバック関数は Event.observeElement#observe で登録し、

で登録を解除できる。

これまで stopObserving() で登録を解除するには observe() に渡した引数と同じものを渡す必要があった。つまり、

Event.observe('signinForm', 'submit', checkForm);

でコールバック関数 checkForm を登録した場合は、

Event.stopObserving('signinForm', 'submit', checkForm);

としていたはず。

1.6.0 では引数を省略することで、対応するコールバック関数すべてを解除できるようになった。

// checkForm を解除
Event.stopObserving('signinForm', 'submit', checkForm);
// signinForm の submit イベントに登録されたコールバック関数を解除
Event.stopObserving('signinForm', 'submit');
// signinForm に登録されたコールバック関数を解除
Event.stopObserving('signinForm');

これまで removeEventListenerdetachEvent の単なるラッパーに近かった stopObserving だが、これでだいぶ使いやすくなった。