我正在努力创建一个带有力布局的无向图。另外,我尝试使用click事件来切换每个圆圈(节点)的颜色。有没有想过在圆形元素上添加这样的事件。我把这个代码打包了,但是它没有用。
vis.selectAll("circle.node").on("click", function(d){
vis.select(d).attr(r, 25)
.style("fill","lightcoral")
.style("stroke","red");
});
答案 0 :(得分:19)
select(d)
引用数据,而不是元素。您需要select(this)
vis.selectAll("circle.node").on("click", function(){
d3.select(this).attr('r', 25)
.style("fill","lightcoral")
.style("stroke","red");
});
答案 1 :(得分:2)
vis.select(this)
给了我一个DOM例外。 d3.select(this)
适合我。您还可以使用d3.event.target
访问单击的DOM元素。