JavaScript / d3 - 在另一个属性中分配属性

时间:2017-09-21 17:24:38

标签: javascript d3.js

我想用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'
    }
  })

0 个答案:

没有答案