JavaScript でイベントが発生した要素を取得する
Ajax ヘルパーを使うとビューテンプレートからイベントハンドラを設定可能となり、ある程度 CakePHP が JavaScript の記述量を吸収してくれるのですが、コールバック関数は自分で書く必要があります。
このとき、イベントの情報がコールバック関数の引数として渡ってくるのですが、この参照が指すオブジェクトの仕様がブラウザによって違うので振り分けが非常に面倒です。
これを解決するためには prototype.js の Event.element() メソッドを使います。
function callbackFunction(e) { var element = Event.element(e); }
というか、ほぼ IE 向けの対策なのですが、 IE の仕様をベースに策定したイベントモデルがなぜ IE でのみ違う振る舞いをするのか謎が深まります。