2012-01-31 6 views
10

私は力のレイアウトで無向グラフを作成しようとしています。また、クリックイベントで各サークル(ノード)の色を変更しようとしています。そのようなイベントをサークル要素に追加する考えはありますか?私はこのコードを踏んでいますが、うまくいきません。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

+0

私はこのようなattr変更を行う必要がありますが、選択されたノードを選択することはできません。つまり、私はfuncとして "d"を使用しようとしています。円を選択する引数が、それは動作しません。 – erogol

答えて

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要素にアクセスすることもできます。

関連する問題