2012-01-31 81 views
10

我正在創建一個具有強制佈局的無向圖。另外,我嘗試用click事件來改變每個圓的(節點)的顏色。有沒有想法在圓形元素上添加這樣的事件。我tyry這個代碼,但它不工作。d3.js將點擊動作添加到力佈局圈?

vis.selectAll("circle.node").on("click", function(d){ 
    vis.select(d).attr(r, 25) 
    .style("fill","lightcoral") 
    .style("stroke","red"); 
}); 
+0

你是不是指'attr('r',25)'? – Dogbert 2012-01-31 14:13:09

+0

我需要做這樣的attr更改,但我無法選擇所選的節點。那是我嘗試使用「d」作爲func。選擇圈子的參數,但它不起作用。 – erogol 2012-01-31 14:29:55

回答

17

select(d)引用數據,而不是元素。您需要select(this)

vis.selectAll("circle.node").on("click", function(){ 
      d3.select(this).attr('r', 25) 
       .style("fill","lightcoral") 
       .style("stroke","red"); 
     }); 
2

vis.select(this)給我一個DOM異常。 d3.select(this)適合我。您還可以使用d3.event.target來訪問單擊的DOM元素。