在树顶部绘制SVG路径。无法更新路径

时间:2016-09-26 11:27:46

标签: javascript d3.js svg

我正在以here的方式徘徊D3坍塌树 并希望在节点之间绘制一些路径。问题是当树分支折叠时,不会删除旧路径。类似的解决方案是here,但我做错了。你能告诉我应该如何更新SVG路径吗?

init,更新路径的代码:

 var path = svg.selectAll('path.sce').data(nodes);
  path.attr('d', lineFunction(nodes))
      .style('stroke-width', 2)
      .style('stroke', 'black')
      .attr('class', 'arrow')
      .attr('fill', 'none')
      .attr('marker-end', 'url(#arrow)');

  path.enter().append('svg:path').attr('d', lineFunction(nodes))
      .style('stroke-width', 2)
      .style('stroke', 'black')
      .attr('class', 'arrow')
      .attr('fill', 'none')
      .attr('marker-end', 'url(#arrow)');

  path.exit().remove();

完整代码 - jsfiddle

1 个答案:

答案 0 :(得分:1)

您的问题非常简单:要使更新和退出选择生效,您必须选择在输入选择中设置的同一个类:

var path = svg.selectAll('.arrow');

这是你的小提琴:http://jsfiddle.net/odf3q84L/