我有一个树形图我试图在这里适应,但问题是当我点击折叠节点时它会自动扩展树中的所有根节点,而不是仅扩展直接子节点。这是一个小提琴。我该如何解决这个问题?
http://jsfiddle.net/heaversm/nw577/
处理节点切换/折叠的功能:
function toggleChildren(d) {
if (d.children) {
d._children = d.children;
d.children = null;
} else if (d._children) {
d.children = d._children;
d._children = null;
}
return d;
}
答案 0 :(得分:1)
问题是所有节点都开始展开,并且只有单击才能切换单个节点的状态。也就是说,根目录下的所有节点仍然展开,但未显示。单击根节点后,它们就会立即生成。因此,它们不会像根一样扩展,但它们永远不会崩溃。
要修复,只需将所有节点折叠为:
tree.nodes(root).forEach(function(n) { toggle(n); });
完整演示here。