我不明白为什么我的点击事件处理程序不起作用。我知道事件处理程序正在运行,因为我可以看到三个 console.log() 语句的输出。问题是点击事件不会改变填充颜色。我的代码全部包含在一个 Observable 笔记本单元格中。我正在使用 d3 版本 7.3.0。
chart = {
const height = 200;
const svg = d3.create("svg")
.attr("width", width)
.attr("height", height);
let my_circles = svg
.selectAll("circle")
.data(d3.range(10))
.enter()
.append("circle")
.attr("cx", d => d * 50)
.attr("cy", height / 2)
.attr("r", d => Math.random() * 20)
.attr("fill", "blue");
my_circles
.on("click", (event, d) => {
console.log(event);
console.log(d);
console.log(d3.select(this));
d3.select(this).attr("fill", "orange");
});
return svg.node();
}
有帮助,谢谢。
保罗