2015-02-06 5 views
0
 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로 되돌아갑니다. 이 코드는 현재 작동하지 않습니다. 이전 호의 불투명도는 새 호를 클릭 할 때마다 지속됩니다.클릭 후 d3에서 불투명도 지우기

+0

클릭 핸들러에서 'arcs'를'vis.selectAll ("g.slice")'로 바꿉니다. –

+0

그래도 여전히 작동하지 않습니다. 클릭 한 이전 호의 불투명도는 0.7입니다. 불투명도는 여전히 1로 재설정되지 않습니다. –

+0

'arcs.selectAll ("path")'. –

답변

0

path 요소를 g 요소에 추가하고 불투명도를 설정하는 것이 문제입니다. 따라서 클릭 핸들러에서 다음을 다시 선택해야합니다.

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