2016-09-26 4 views
1

nicht aktualisieren. Ich drawaing D3 kollabierenden Baum als here und möchte einen Pfad zwischen den Knoten zeichnen. Das Problem besteht darin, dass der alte Pfad nicht entfernt wird, wenn der Zweig ausgeblendet ist. Eine ähnliche Lösung ist here, aber ich mache etwas falsch. Können Sie mir bitte mitteilen, wie ich den SVG-Pfad aktualisieren soll?Zeichnen Sie den SVG-Pfad oben auf dem Baum. Ich kann den Pfad

-Code für init, Update-Pfad:

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(); 

Voll Code - jsfiddle

Antwort

1

Ihr Problem ist sehr einfach: für die Aktualisierungs-und Ausfahrt Auswahl, arbeiten Sie die gleiche Klasse wählen, die Sie set in Ihrer Eingabe Auswahl:

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

Hier ist Ihre Geige: http://jsfiddle.net/odf3q84L/

Verwandte Themen