Prototype 1.6.0 で大きく進化したイベント API (3)
Prototype 1.6.0 RC イベント API の進化、更なるつづき。
Event.stopObserving で複数のイベント登録を解除できるようになった
イベントのコールバック関数は Event.observe や Element#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');
これまで removeEventListener や detachEvent の単なるラッパーに近かった stopObserving だが、これでだいぶ使いやすくなった。