使用&& 39;分类'从数组中添加名称

时间:2018-01-30 10:56:17

标签: d3.js

我在这里有一个codepen - https://codepen.io/anon/pen/ddPMVx?editors=1010

这是一个简单的堆积条形图

数据中的每个堆栈都在其自己的图层中,并带有一层'层'

我想添加另一个类,它是创建堆栈的键的键名称

.classed('layer', true)

// .classed((i)=>{
//     return keys[i],
// }, true)

2 个答案:

答案 0 :(得分:1)

无法使用classed的功能。有关详细信息,请查看我的answer here

您可以使用getter获取现有类并添加所需的类。但是,请注意:您在参数中使用字母i这一事实......

function(i){...

...并不意味着它是索引。索引是第二个参数,无论其名称如何。所以,它应该是:

function(_, i){...

所有这一切,这是一种添加密钥名称而不覆盖现有类的方法:

.attr("class", function(_, i){
    return d3.select(this).attr("class") + " " + keys[i]
});

以下是更新的CodePen:https://codepen.io/anon/pen/JpoKLK?editors=1010

答案 1 :(得分:1)

使用attr()功能,但请在classed()来电之前确认,因为它会覆盖您的所有课程:

.attr('class', (_, i) => keys[i])
.classed('layer', true)