2012-06-27 53 views
0

不正確的鏈接我有一個D3力向圖先用幾個節點顯示。每個節點都有一個點擊處理程序,它將進一步擴展圖形並動態地向點擊節點添加更多節點和鏈接。每個節點也有一個SVG矩形形狀。因爲新的鏈路和節點添加到現有的圖表,鏈接出現在點擊的節點之上,因爲SVG是「畫家」的模式。因此,我使用了d3.selectAll()。filter()。sort()以正確的順序放置DOM節點。除了節點和鏈接在有向圖上放錯位置之外,這是有效的。有沒有辦法使用sort(),但也保持force.nodes()和force.links()數據同步?篩選/排序造成力向圖

更新:我創建的jsfiddle證明這種情況的發生。點擊幾下創建新節點後,鏈接變得不穩定。如果以「reorder_nodes_and_links()」被註釋掉的號召,圖表是穩定的,但在鏈接上,因爲DOM秩序的節點之上呈現。

http://jsfiddle.net/bobfaist/MURwA/

回答

1

selection.insert需要告訴它之前,其他的東西插入事物的第二個參數。

我無法看到年小提琴的權利,但這裏是從一個類似的項目什麼的。

這將插入任何歸類爲一個節點之前新線。

lines.enter().insert("svg:line", ".node") 

https://github.com/mbostock/d3/wiki/Selections#wiki-insert

+0

感謝您的幫助。很棒。在閱讀文檔時完全錯過了。我不需要filter()。sort(),因爲insert()API現在具有所需的行爲。 –