function LoadFile(event) {
if (this == イベント.target) {
var path = $(this).find('span').html();
var ノード = $('
'); >$(this).append(node);
$.getJSON('filelist.ashx', { path: path }, function(data) {
$.each(data, function() { if ( this.IsFolder) {
node.append($('- ').addClass('folder').html(this.Name).append($('') .addClass( 'fullpath').html(this.FullPath)));
}
else {
node.append($('- ').addClass('file'). html(this .Name).append($('').addClass('fullpath').html(this.FullPath)));
}
}); find(' li.folder').toggle(LoadFile, CloseFolder);
}
}
まず、イベントのターゲットと this が子ノードをクリックしたときに複数のトリガーが発生するのを避けるため。まず、find 関数と html 関数を使用して完全なパスを取得します。 ul ノードを構築し、それを現在の li に追加します。この時点では、ul は空であり、サーバー側のデータを取得するために ajax リクエストが開始されます。データごとに li を生成し、ディレクトリであるかどうかを判断し、異なるクラスの li を生成してノードに追加します。最後に、新しく追加したノードにイベント ハンドラーをバインドすることも忘れないでください。コードは比較的単純で、ディレクトリ ノードを閉じるコードはさらに単純です。