Javascript d3.js单击可替换颜色,单击另一个点可更改回原始颜色
我正在使用d3中的散点图,图上的每个点代表一张纸 图表上的所有点都是蓝色的,但单击“我希望所选纸张改变颜色”(例如黄色)。但当点击另一个点时,我希望第一个点变回蓝色,新选择的点变为黄色。我将如何实现这一点?我有一个名为clickHandler的函数,在单击属性创建圆时调用该函数 这里有一个类似的问题 但是,我不希望在第二次单击该圆时,该圆返回到原始颜色,而是希望在单击另一个圆时,该圆返回到原始颜色 下面的代码来自上面链接的问题,我想知道我是否在正确的轨道上,认为这是我应该为我想要的东西遵循的方法Javascript d3.js单击可替换颜色,单击另一个点可更改回原始颜色,javascript,d3.js,Javascript,D3.js,我正在使用d3中的散点图,图上的每个点代表一张纸 图表上的所有点都是蓝色的,但单击“我希望所选纸张改变颜色”(例如黄色)。但当点击另一个点时,我希望第一个点变回蓝色,新选择的点变为黄色。我将如何实现这一点?我有一个名为clickHandler的函数,在单击属性创建圆时调用该函数 这里有一个类似的问题 但是,我不希望在第二次单击该圆时,该圆返回到原始颜色,而是希望在单击另一个圆时,该圆返回到原始颜色 下面的代码来自上面链接的问题,我想知道我是否在正确的轨道上,认为这是我应该为我想要的东西遵循的方法
function clickHandler (d, i) {
var toggleColor = (function() {
var currentColor = "blue";
return function() {
currentColor = currentColor == "blue" ? "yellow" : "blue";
d3.select(this).style("fill", currentColor)
.style("stroke", "black");
}
})
}
非常感谢您的帮助!提前谢谢 这可以简单到:
function clickHandler (d, i) {
// reset all circle to blue
d3.selectAll('circle') //<-- or slap a class name on your circles and use that
.style('fill', 'blue');
// set selected one to yellow
d3.select(this)
.style('fill', 'yellow');
}
函数clickHandler(d,i){
//将所有圆圈重置为蓝色
d3.选择全部('圆圈')//