我希望節點的顏色在雙擊時發生變化。即在第一次雙擊時,它會變成黑色,但是在重新雙擊它時,它會變回原來的顏色。我能夠在第一次雙擊時變成黑色,但我無法使其恢復到原來的顏色。在此先感謝,這裏是我的代碼。處理這種在D3中雙擊更改節點的顏色
var gnodes = svg.selectAll('g.gnode')
.data(graph.nodes)
.enter()
.append('g')
.classed('gnode', true);
var node = gnodes.append("circle")
.attr("class", "node")
.attr("r", 5)
.style("fill", function(d) {return d.colr; })
.on('dblclick', function (d)
{
if (d3.select(this).style("fill") != "black")
{
d3.select(this).style("fill", "black");
}
else
{
d3.select(this).style("fill", function(d){return d.colr;});
}
})
.call(force.drag);
不適用於我,因爲所有節點都變黑,而不僅僅是雙擊節點。 – Learner23 2014-09-26 03:53:05
啊,'gnodes'是一個輸入選擇不是它。好吧,我更新了答案,使用'selection.each'來做同樣的事情,但是對於每個圈子。 – jshanley 2014-09-26 04:05:35
工程!非常感謝!這是一個很好的方式來做到這一點。 – Learner23 2014-09-26 04:10:51