dojo使いには当たり前かもしれない、ちょっとしたTIPSです。
(1) dojo.byId
dojo.byId
は、HTMLのエレメントを渡すと、そのまま帰ってきます。
つまり、dojo.byId(dojo.byId('hoge'));
とやっても正常に動作します。
なので、dijit等で「ノードのIDを渡す」と書かれているところに、直接エレメントを渡しても、たいてい上手く動きます。
動的に要素が増えてIDを付けにくい場合などに、ちょっと役立ちます。
(2) dojo.query
dojo.query
は、CSSのセレクタで要素を選択できる便利なものです。
この第2引数にHTMLのエレメントを渡すと、その子要素のみ検索対象になります。
var img = dojo.query('img', hogeNode)[0];
基本かつ必須な機能のはずなのに、なぜか解説サイトにあまり書いていないという。。
(3) dojox.layout.ResizeHandle
ドラッグ&ドロップはサンプルがたくさんあるのに、リサイズはなぜか少ないですね。
dojoはリサイズも簡単なので、以下にサンプルを載せておきます。
<html> <head> <script type=”text/javascript” src=”dojo/dojo.js”></script> <script type=”text/javascript”> dojo.require(’dojox.layout.ResizeHandle’); dojo.addOnLoad(function() { var handle = new dojox.layout.ResizeHandle({ activeResize:true, minWidth:30, minHeight:30, targetId: ‘box’ }, dojo.byId(’handle’)); }); </script> <link rel=”stylesheet” href=”dojox/layout/resources/ResizeHandle.css” /> </head> <body> <div id=”box” style=”position:relative; background:yellow;”> <p>リサイズできます</p> <div id=”handle”></div> </div> </body> </html>
動作サンプル
リサイズ可能