可折叠树布局中的d3js路径生成器

时间:2013-11-11 00:00:06

标签: javascript dom svg d3.js

我一直在学习d3js并且有这个问题,我几乎无法在网上找到一个很好的参考:

在此演示代码中:

可折叠树http://bl.ocks.org/mbostock/4339083

我发现下面的snip对于节点的崩溃/扩展行为至关重要:

  // Update the links…
  var link = svg.selectAll("path.link")
  .data(links, function(d) { return d.target.id; });

有没有人可以解释为什么必须在这里使用d.target.id设置数据?或者,如果有人可以将我重定向到解释的引用,非常感谢。

1 个答案:

答案 0 :(得分:0)

.data()的第二个参数是一个告诉D3如何将数据元素与DOM元素匹配的函数。默认情况下,它通过索引执行此操作,即第一个数据项与第一个DOM元素匹配,第二个数据项与第二个DOM元素匹配,依此类推。在这种情况下,这不起作用,因为数据需要匹配目标的ID(或类似的唯一标识链接的东西)。

有关详细信息,请参阅the documentation