またもや良さげなやーつー発見。
かなり豊富なAPIとメソッドを持っているため、出来ないことはほぼない。自分的にはAjaxを用いた遅延読み込みが出来ればおなか一杯大満足である。
ドキュメントは下記URLを参照。
http://wwwendt.de/tech/dynatree/doc/dynatree-doc.html
案の定いきなりドキュメントを読み始めても途方に暮れたので、念のため雛形をメモ。
■HTML
<div id="tree"></div>
■Javascript
$("#tree").dynatree({ // 初回読み込み時のファイルツリー読込メソッド initAjax: { url: '/path/to/parentNode.json' }, // isLazyが有効なノードが展開された際に実行 onLazyRead: function(node) { node.appendAjax({ url: /path/to/childrenNode.json, }); }, // ノードが選択した際に実行 onActivate: function(node) { console.log(node.getKeyPath()); }, });
読込先のノードに指定したURLは下記のようなJSON配列を返すように記述しておけばおk。
[ {"title" : "fileName", "isLazy" : false, "key" : "hogehoge"}, {"title" : "FolderName", "isFolder" : true, "isLazy" : true, "key" : "piyopiyo"} ]
node.getKeyPath()は各ノードに登録されたキーパスを取得してくれるメソッド。
これだけ書けてれば基本的なファイルツリーの実装には困らないはず。
更なる詳細は公式ドキュメントを参照されたし。