2014-08-27 68 views
2

我正在嘗試創建一個可以動態添加和刪除節點的圖。可以使用「添加節點」按鈕創建新的獨立節點,然後使用右鍵單擊上下文菜單選項「創建子項」創建節點的子節點。使用刪除節點選項可以刪除節點。無法從帶D3箭頭的D3強制指令圖中刪除鏈接

我有一個工作的小提琴這裏其中的鏈接沒有箭頭代表方向: http://jsfiddle.net/ztvcb2a4/

我想要完全一樣的行爲,但表示從父節點到子節點的方向箭頭。當我嘗試通過追加箭頭來修改它時,我遵循與輸入和退出選擇完全相同的邏輯,但是我一直使用exit.remove()獲取該錯誤。可能是我錯過了一些我無法想象的東西。 「未捕獲的類型錯誤:未定義不是函數」

路徑變量在函數update外部定義爲全局變量。

var path = svg.append("svg:g").selectAll("path");   

這是功能更新(內部鏈接)的進入和退出選擇代碼:

path = path.data(force.links(), function(d) { return d.source.id + "-" + d.target.id; })   
path.enter().append("svg:path") 
.attr("class", "link") 
.attr("marker-end", "url(#end)"); 

path.exit.remove(); 

修改後的小提琴: http://jsfiddle.net/427pzrsc/

回答

2

您需要使用path.exit().remove();。您錯過了exit的括號。

+0

我不敢相信我因爲這樣愚蠢的錯誤而被卡住了。非常感謝。 – swatinits 2014-08-27 20:18:41