2016-06-29 128 views
0

我是d3.js的新手,我試圖從此鏈接修改分層邊緣綁定:https://bl.ocks.org/mbostock/7607999d3.js點擊分級邊緣綁定節點顏色變化

enter image description here

我已刪除了被顯示在懸停的聯繫,並把上點擊代替。我想和一樣點擊(突出顯示)。我已經刪除了該節點的懸停事件。這裏是我到目前爲止的小提琴https://fiddle.jshell.net/vdmn2oj4/

我該怎麼做?

當它懸停時,我們可以在css風格中使用「懸停」屬性,但沒有點擊(僅針對鏈接和文本框)。

我試圖改變數據並使其鏈接,而不是(這樣我就可以在CSS使用對焦):

<a href='#' onclick='return true;'>data</a> 

當然,沒有工作(讓我知道如果你能做到這一點的不知何故)。 並使用像這樣的鏈接的屬性:

.attr({"xlink:href": "#"}) 

不工作或者是因爲我無法改變它的風格上注重與CSS(或我不知道怎麼樣,但是如果我能有可能解決我的問題)。

我也嘗試過操作節點,但到目前爲止,我只能夠更改所有節點,源和目標,但不是我單擊的節點。

我也知道有一個「親本」屬性的節點,這可能是我想要的,但我還沒有發現如何使用它。

任何解決方案,甚至部分將是受歡迎的,因爲我已經花了很多時間。

回答

1

function mouseclick內補充一點:

d3.select(".node--clicked") 
    .classed("node--clicked", false);//removes the class of previously clicked nodes 
var clicked = d3.select(this);//select the clicked element 
clicked.classed("node--clicked", true);//set the class 

這是你更新的提琴:https://fiddle.jshell.net/vdmn2oj4/3/

+1

這是在正確的軌道上!我想讓它變成第三種顏色,例如.node - 點擊{fill:#00BFFF;}(它在小提琴的css中)。當我將「node - sourc,truee」更改爲「node - click,true」時,當我單擊另一個節點時,顏色不會被刪除。有什麼建議? – MorganFR

+0

我剛更新了小提琴。 –

+0

非常感謝您,現在編輯的功能可以正常工作。 – MorganFR