prototype.jsのEvent.observeは非常に便利なのですが、
初期化処理など、一度だけイベントの処理したい場合にはちょっと不便です。
度々そのような処理を行う機会があったので、以下のような
一度だけイベントをハンドルする関数を作ってみました。
js>>
Event.observeOnce = function(element, event, observer){
var handler = function(){
Event.stopObserving(element, event, handler);
return observer.apply(null, $A(arguments));
};
Event.observe(element, event, handler);
};
<<--
使い方は、通常のEvent.observeと同様です。
js>>
Event.observeOnce(document, 'dom:loaded', function(){
/* some code goes here */
});
<<--
Railsアプリケーションであれば、public/javascripts/application.js
あたりに置いておくと便利かもしれません。
posted by
genki on Thu 28 Feb 2008 at 17:04 with 0 comments