12

我正在努力创建一个具有强制布局的无向图。另外,我尝试通过点击事件来改变每个圆圈(节点)的颜色。有什么想法可以在圆形元素上添加这样的事件。我输入了这段代码,但它不起作用。

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

2 回答 2

24

select(d)引用数据,而不是元素。你需要select(this)

 vis.selectAll("circle.node").on("click", function(){
            d3.select(this).attr('r', 25)
                .style("fill","lightcoral")
                .style("stroke","red");
        });
于 2012-02-01T16:18:14.900 回答
2

vis.select(this)给了我一个 DOM 异常。d3.select(this)为我工作。您还可以使用d3.event.target访问被单击的 DOM 元素。

于 2012-02-01T18:32:50.727 回答