2016-05-20 28 views
1

我试图构建一个原型来突出显示条形图上的多个点,当用户单击它时。我无法选择多个点。c3单击并突出显示多个选择

如果我尝试单独更改样式,则突出显示单击的栏。我想用css类.solid,所以下次用户点击它时,我可以查找该类的项目并保留它们。下面的作品,但它的设置不透明度单独

d3.selectAll(k).style("opacity", 1) 

如果我尝试添加类像使用.classed不工作。

d3.selectAll(k).classed('solid', true); 

我已经分享了一个plunker链接来显示问题。有人可以让我知道我可以如何将CSS类应用于多个项目,然后用selectAll访问项目,每次用户单击一个栏以将新项目添加到突出显示的项目。谢谢你的帮助。

C3 Plunker

回答

1

嗯,这按预期工作: 在你的风格补充一点:

.solid{ 
    opacity:0.3 !important; 
} 

然后在点击做你暗示。

 onclick: function(e) { 
     //add solid style to all bars. 
     d3.selectAll(".c3-shape").classed("solid", true);//add to all bar this class 
     var k = ".c3-shape-" + e.index; 
     //make the clicked bar opacity 1 
     d3.selectAll(k).classed("solid", false);//remove class solid from the clicked bar. 
     } 

工作代码here

相关问题