Martin Wendt によって書かれたFancytree jQuery プラグインを使用してきましたが、これは素晴らしいものです。しかし、私はある特定の側面に苦労してきました。ツリーのデータ構造に JSON ではなく HTML を使用していますが、ノードが欠落してレンダリングされることがわかりました。
これを Fancytree コントロールが単一の<UL>
構造体を想定しているに違いないという事実に絞り込むのにかなりの時間を費やしました。構造内の他のものは、 の下にネストする必要があります<LI>
。しかし、私はその理由を理解していません。説明させてください。
サンプル HTML を次に示します。
<div id="tree">
<UL id="browser" class="filetree">
<LI class="folder">
Folder 1
<UL>
<LI>Nested Folder 1
<UL>
<LI>Subitem1</LI>
<LI>Subitem2</LI>
</UL>
</LI>
</UL>
<UL>
<LI>Nested Folder 2
<UL>
<LI>Subitem1</LI>
<LI>Subitem2</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</div>
この HTML を IE、Chrome、またはほとんどすべてのブラウザーでレンダリングすると、アイテムがネストされた 2 つの連続する順序付けられていないリストとして正しく表示されます。ただし、Fancytree を適用すると、ノード「Nested Folder 2」が完全に消えます。実際、プラグイン フレームワークからの JavaScript エラーや警告はありません。
したがって、私の質問はやや二重です。
W3C 標準に基づいて、上記の適切にフォーマットされた HTML 構文はありますか? 私はイエスと思う。
Fancytree が 2 番目のフォルダーをレンダリングしないのはなぜですか? Fancytree のバグですか?これをレンダリングするために簡単にできるカスタマイズはありますか?
この HTML のソースは動的であり、かなり複雑な XSLT が含まれているため、HTML 構造をリファクタリングする必要がないことを願っています。
提供できる洞察をいただければ幸いです。