dojo.connectとdojo.byId

開発の時の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
0