在d3中多次选择节点强制布局



我已经得到了以下代码片段,它适用于单个选择(和取消选择)。有没有人可以帮助我扩展这段代码,以便可以进行多次选择(并在再次单击同一节点时取消选择节点)?

function click(d){
        if(!selected){
            selected = d3.select(this);
            selected.style('stroke', 'red')
            userSelect=d.user_ids;
            console.log(userSelect);
            createNewSVG(userSelect);
        }
        else if(selected[0][0] == d3.select(this)[0][0]){
            selected.style('stroke', 'white');
            selected = undefined;
            removeSVG();
          }
    }

你需要像

function click(d){
    d3.select(this).classed("selected", !d3.select(this).classed("selected"));
    d3.selectAll("foo").style("stroke", "white");
    d3.selectAll(".selected").style('stroke', 'red');
}

这将添加一个类selected到所有选定的东西,你可以使用D3来选择和修改它们。

最新更新