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

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

2007/09/24 12:02pm

Prototype 1.6.0 RC のイベント API について紹介するシリーズも今回が最後。

カスタム・イベント

あらかじめ定義された組み込みのイベント clicksubmit 以外にも、ユーザーが好きなイベントを発生させることができるようになった。

たとえば、こんな HTML があるとして、

<div id="container">
  <h1><span id="title">Release notes</span></h1>
  ...
</div>

Element#fire(実体は Event.fire)メソッドを使って、タイトルが変更された、という通知を送る(イベントを発生させる)ことができる。

$("title").fire("titleChanged");

当然、受け手も必要なわけで、組み込みのイベントと同様、Element#observe でコールバック関数を登録できる。

$("container").observe("titleChanged", function(event) {
  this.highlight({ duration: 0.5 });
});

ちなみに、Event.fire メソッドは内部で次のどちらかの処理を行う。

クロスブラウザな DOMContentLoaded イベント

window.onload 前でも DOM 処理が可能なら通知してくれる domready.js でも紹介した DOMContentLoaded がサポートされた。

document.observe("contentloaded", function() { ... })

従来の Element#observe メソッドを通して、透過的に扱うことができる。