单击后在d3中清除不透明度

时间:2015-02-06 22:49:19

标签: javascript d3.js

        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。此代码现在不起作用。每当我点击新弧时,点击的任何先前弧的不透明度都会持续存在。

1 个答案:

答案 0 :(得分:0)

问题是,您要将path元素附加到g元素并在其上设置不透明度。因此,在点击处理程序中,您必须再次选择它们:

.on("click", function(d) {
            arcs.selectAll("path").style("opacity", 1);
            d3.select(this).style("opacity", 0.7);
})