我一直在使用 Martin Wendt 编写的Fancytree jQuery 插件,它很棒。但是,我一直在努力解决一个特定的方面。我使用 HTML 而不是 JSON 作为树的数据结构,并发现它呈现时缺少节点。
我花了相当多的时间将其缩小到 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 或几乎任何浏览器中呈现时,它正确地显示为两个带有嵌套项的连续无序列表。但是,当我应用 Fancytree 时,节点“嵌套文件夹 2”完全消失了。事实上,插件框架没有 JavaScript 错误或警告。
因此,我的问题有两个方面:
基于 W3C 标准的上述 HTML 语法格式是否正确?我想是的。
为什么 Fancytree 不呈现第二个文件夹?这是 Fancytree 的错误吗?我可以轻松地进行自定义以使其呈现吗?
我的这个 HTML 源是动态的,并且涉及到一个相当复杂的 XSLT,所以我希望答案是不必重构 HTML 结构。
我将不胜感激任何可以提供的见解。