我试图对jstree进行一些主题化,使得图标更适合我的需求。但是,我似乎无法让类型插件完全正常工作。
创建树:
// Create JSTree
$('#listbox').jstree({
"types": {
"#": {
"valid_children": ["floor", "default"],
},
"default": {
"valid_children": ["default", "floor"],
"icon": "/WACH%20Graphics/images/building.png"
},
"floor": {
"icon": "/WACH%20Graphics/images/floor.png"
}
},
"plugins": ["search", "wholerow", "types"]
});
我的列表实际上是动态生成的。但是,无序列表的结构类似于以下内容:
<ul>
<li><a href="building.html">Building 1</a>
<ul>
<li rel="floor"><a href="floor.html">Floor1</a></li>
<li rel="floor"><a href="floor.html">Floor1</a></li>
<li rel="floor"><a href="floor.html">Floor1</a></li>
</ul>
</li>
</ul>
我的默认图标被拾取。但我的“地板”类型的图标永远不会被拾取。相反,一切都有默认图标。
这是jstree 3.0.0。
答案 0 :(得分:8)
JSTree开发人员在他的Github上给出的答案:
不会从rel属性读取类型。尝试使用
<li data-jstree='{ "type" : "floor" }'...
标记中的(并将单引号保留在外面,双引号 - 在data-jstree属性中保留)。
请参阅:https://github.com/vakata/jstree/issues/497
在我的情况下,我只是使用类型插件来覆盖图标。事实证明,这可以通过简单地为列表项提供一个带有图标属性集的data-jstree属性来完成。
<li data-jstree='{ "icon" : "icon.png" }'></li>
希望有人在将来发现这有用:)