このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

JavaScript でイベントが発生した要素を取得する

Ajax ヘルパーを使うとビューテンプレートからイベントハンドラを設定可能となり、ある程度 CakePHP が JavaScript の記述量を吸収してくれるのですが、コールバック関数は自分で書く必要があります。

このとき、イベントの情報がコールバック関数の引数として渡ってくるのですが、この参照が指すオブジェクトの仕様がブラウザによって違うので振り分けが非常に面倒です。

これを解決するためには prototype.js の Event.element() メソッドを使います。

function callbackFunction(e)
{
  var element = Event.element(e);
}

というか、ほぼ IE 向けの対策なのですが、 IE の仕様をベースに策定したイベントモデルがなぜ IE でのみ違う振る舞いをするのか謎が深まります。

back to top