【问题标题】:D3.js collapsable tree - visualise set number of levelsD3.js 可折叠树 - 可视化设置的级别数
【发布时间】:2015-06-07 16:14:25
【问题描述】:

我正在玩这个可折叠树的例子:http://bl.ocks.org/mbostock/4339083

在此示例中,最初仅显示根及其所有子项。我想知道如何可视化设置的级别数(例如根和两个附加级别,即根、其子级和根子级的子级)。

我尝试修改collapse(d) 函数,在其中我指定根据其depth 属性折叠一个节点。喜欢:

function collapse(d) {
    if (d.children && d.depth > 3) {
        d._children = d.children;
        d._children.forEach(collapse);
        d.children = null;
    }
}

但是没有一个节点被折叠,因为d.depth 属性是undefined。我深入挖掘并理解(如果我错了,请纠正我)depth 属性仅在 nodes 变量初始化后才被分配给节点。

var nodes = tree.nodes(root).reverse();

现在我完全被困住了。有什么方法可以实现吗?

【问题讨论】:

    标签: javascript jquery d3.js tree


    【解决方案1】:

    我找到了问题的解决方案。事实证明,在调用tree.nodes(root) 之前,节点没有父级、位置(x,y 坐标)和深度属性,它会计算所有上述属性。所以我必须做的是调用该函数之前我调用collapse 函数。之后,可以只折叠那些具有一定深度的节点,这将只可视化一定数量的级别。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-01
      • 1970-01-01
      • 2015-03-10
      • 1970-01-01
      相关资源
      最近更新 更多