我想用d3在属性定义中分配一些属性/样式。请参阅下面的示例,这对我有用。但是,在另一个属性函数中分配属性似乎不正确。有没有更好的方法呢?
d3.selectAll('.myClass')
.attr('x', function (d) {
var myVar = some_expensive_function(d)
if (myVar < 5) {
d3.select(this).attr('class', 'myClass cssSelectorClass')
// Assign other attributes or styles here too
return myVar
} else {
d3.select(this).attr('class', 'myClass')
// Assign other attributes or styles here too
return myVar
}
})
我不想在每个属性函数中进行“昂贵”的计算,所以我宁愿不做类似的事情:
d3.selectAll('.myClass')
.attr('x', function (d) {
var myVar = some_expensive_function(d)
if (myVar < 5) {
return myVar
} else {
return myVar
}
})
.attr('class', function (d) {
var myVar = some_expensive_function(d)
if (myVar < 5) {
return 'myClass cssSelectorClass'
} else {
return 'myClass'
}
})