prototype.jsを使ってClassにイベントを一括割り当て

HTMLのロード時に<div class="popup">に一括してイベントを登録するプログラムを書いてみました。onClick=なんたらとか書かなくていいので、HTMLはビューに関する記述のみになってすっきりします。

JavaScriptってかなり面白いですね。プロトタイプベースのオブジェクト指向言語っていうのが、最初よく分からなかったのですが、なるほどこれは奥が深い。クロージャの使い方もやっと分かりました。PerlやPHPでも無料掲示板CGIレベルのもの(巷の入門書は、たいていこのレベル)からライブラリやフレームワークを駆使した高度なものまでありますが、ちょっとかじっただけでは知ることのできない世界がそこには広がっている感じ。

popupWindowFactory = Class.create();
popupWindowFactory.prototype = {
    initialize: function() {
        Event.observe(window, "load", this.activate.bind(this));
    },

    activate: function() {
        document.getElementsByClassName('popup','DIV').map(function(elm){
           Event.observe(elm, 'click', alert('Message.'), false);
        });
    }
};

(2006/03/15 追記)

getElementsByClassNameなんて便利な関数があったので修正。さらにスマートになりました。



Leave a comment


:

:

:

:

このエントリーのはてなブックマーク (-)