Home > 技術 > prototype.jsのEvent.observeを使ってみる

prototype.jsのEvent.observeを使ってみる

JavaScriptを使ってアプリケーションを作る場合、ユーザビリティを考えるといろいろなイベントを使うことになると思います。
例えばボタンが押された場合や、画面が表示された場合などなど。

このときに発生したイベントでこんな処理をしたいな~と思ったときに登録するのがイベントハンドラ(関数)です。

<input type="button" onclick="ajaxRequest();"/>

でもこれだとデザインとロジックの分離といった考えから外れて、ちょっとHTML自体が見にくくなってしまう場合があります。
そこで登場するのがJavaScriptからイベントを登録するといった考え方です。

「なんか難しそうだな~」または「面倒だな~」と思われるかもしれませんが、なんてことはありません。
1個のメソッドを呼ぶだけでいいんです。ラクチン!

それがprototype.jsに定義されているEventクラスのobserveメソッドです。

使い方はいたってシンプルで

<script language="JavaScript">
<!--

   // こんな感じでイベントを登録できる
   // Event.observeはブラウザ毎の登録の違いを吸収してくれるよ
   Event.observe(window, 'unload', function(){
     alert("a");
   });

//-->
</script>

このように

  1. イベントを追加したいオブジェクト:「window」
  2. どのイベントに追加するか?:「unload」
  3. あとイベントハンドラ

を引数で渡すだけです。

上記では無名関数をそのまま入れています。

これで画面のonload時に上記処理を呼び出してで目的のイベントを登録しといたら、なんだかカッチョイイですね!
今まであんまり使ったことはなかったのですが、これから進んで使ってみようと思います。

ちなみにどうしてこのようにわざわざprototype.jsのEvent.observeを使わないといけないかと言うと、ブラウザ毎にイベントを追加するメソッドが違うからです。
Internet Explorerでは

attachEvent, detachEvent

Firefox,Opera,Safariでは

addEventListener, removeEventListener

ほんのちょびっと違いますねw
これをEvent.observeが吸収してくれているのです。(なんかいいヤツだな~)
デザインと処理の分離で、見やすいコード+デザイナーさんに優しい設計をしてみてはいかがでしょうか。

【関連する記事】

Comments:0

Comment Form

コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。

Remember personal info

Trackback:0

TrackBack URL for this entry
http://hisasann.com/cgi-bin/mt/mt-tb.cgi/735
Listed below are links to weblogs that reference
prototype.jsのEvent.observeを使ってみる from HouseTect, JavaScripter Blog

Home > 技術 > prototype.jsのEvent.observeを使ってみる

Tag cloud
Categories
月別アーカイブ
このブログについて
author:hisasann

description:フリーランスで仕事しているプログラマーです。
最近はJavaScript、Rails、Java(Struts+Spring)なんかをいろいろといじっています。
今やってみたいのはFlashやActionScriptかな。
また誕生して半年になる子供の成長を見守るパパでもあります。

日々の日記 :

他に運営しているブログ:

利用しているWebサービス :
最近のコメント
Powered by
Powered by
Movable Type 3.35

Page Top