var arcs = vis.selectAll("g.slice").data(pie).enter().append("svg:g").attr("class", "slice");
arcs.append("svg:path")
.on("click", function(d) {//clicking on individual arcs
arcs.style("opacity", 1);
d3.select(this).style("opacity", 0.7);
所以我有一个饼图,当我点击一个单独的弧时,它的不透明度将下降到0.7。但是,当我点击另一个弧时,我希望不透明度返回到1。此代码现在不起作用。每当我点击新弧时,点击的任何先前弧的不透明度都会持续存在。
答案 0 :(得分:0)
问题是,您要将path
元素附加到g
元素并在其上设置不透明度。因此,在点击处理程序中,您必须再次选择它们:
.on("click", function(d) {
arcs.selectAll("path").style("opacity", 1);
d3.select(this).style("opacity", 0.7);
})