d3.js树形图 - 单击根节点时仅展开下一级节点

时间:2014-05-29 18:24:21

标签: javascript svg d3.js data-visualization

我有一个树形图我试图在这里适应,但问题是当我点击折叠节点时它会自动扩展树中的所有根节点,而不是仅扩展直接子节点。这是一个小提琴。我该如何解决这个问题?

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;
}

1 个答案:

答案 0 :(得分:1)

问题是所有节点都开始展开,并且只有单击才能切换单个节点的状态。也就是说,根目录下的所有节点仍然展开,但未显示。单击根节点后,它们就会立即生成。因此,它们不会像根一样扩展,但它们永远不会崩溃。

要修复,只需将所有节点折叠为:

tree.nodes(root).forEach(function(n) { toggle(n); });

完整演示here

相关问题