dojo.connectとdojo.byId
Posted 1月 27th, 2008 by twk
in
開発の時のJavaScriptはdojo toolkitを使っているわけですが、
イベントハンドリングの書き方でちょっと悩んでいます。
dojoの書き方だと
dojo.connect(dojo.byId(id), 'onclick', function(event){
if (!confirm('続行しますか'))
dojo.stopEvent(event);
});
のようにするのですが、ここでidの指定が間違っていたりすると、byIdからnullが入ってしまい、
その場合にconnect呼び出しではエラーにならず、ページ全体にイベントが設定されてしまう仕様のため
書き間違いにすぐ気づかないのです。
いまは仕方なく
console.assert(dojo.byId(id));
dojo.connect(dojo.byId(id), 'onclick', function(event){
if (!confirm('続行しますか'))
dojo.stopEvent(event);
});
のように書いていますが、同じことを二度書くのはいまいちです。
byIdで見つからなかった場合に例外を出してくれる関数
twk.$ = function(id){
var o = dojo.byId(id);
if (!o) throw new Exception('element not found. id=' + id);
return o;
};
みたいのを定義してそれを使うのもありですが、
できるだけこの辺はライブラリーにある関数で済ませたいし。
良さげな方法があったらトラックバックでもください。。
Trackback URL for this post:
http://nonn-et-twk.net/twk/trackback/149


