d3.js将点击动作添加到力布局圈?

时间:2012-01-31 14:05:12

标签: javascript svg d3.js force-layout

我正在努力创建一个带有力布局的无向图。另外,我尝试使用click事件来切换每个圆圈(节点)的颜色。有没有想过在圆形元素上添加这样的事件。我把这个代码打包了,但是它没有用。

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

2 个答案:

答案 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元素。