2
我正在使用D3强制布局并添加代码以允许用户选择单个节点(此处,选择与D3 select()无关,但指示从用户的角度来看节点的突出状态)。一次只能选择一个节点。所以,当用户点击未选择的节点时,我想取消选择任何选定的节点。在D3强制布局中使用数据(...)来更新图形
我在节点上使用了一个选定的属性,并努力使用D3数据(...)或数据(...)方法来设置该属性。事实上,我无法像那样工作。我现在所拥有的东西似乎有点不合时宜,所以我希望有一种更清洁的方式。
function deselectAll() {
var sc = d3.selectAll("circle")
.filter(function(d) {return (d.selected == "y")});
var circles = sc.data();
sc.transition()
.duration(50)
.style("stroke-width", "1px")
.style("stroke", "#3182bd");
if(null != circles && circles.length > 0) {
for(i=0; i<circles.length; i++) {
circles[i].selected = "n";
}
}
}
问题是,向链中添加.data(“n”)没有将“selected”设置为“n”。是否有可能将其作为d3链的一部分?
是的,这是完美的。我没有看到这个功能。谢谢! – laloumen