无法更改d3.js矩形的填充

时间:2013-08-16 18:29:43

标签: javascript d3.js coffeescript

所以我有这个代码 -

bars.
  append('rect')
  .attr('x', 0)
  .attr('y', (d, i) ->
    return yScale(i)
  ).attr('width', (datum) ->
    return xScale(datum.freq)
  )
  .attr('height', barHeight)
  .attr('fill', 'blue')
  .attr('class', 'bar')
  .on('click', ->
    bars.selectAll('rect').attr('fill', '#0000ff')
    currentFill = d3.select(this).style('fill')
    nextColor = {}
    if currentFill == '#0000ff'
      nextColor = '#ff0000'
    else
      nextColor = '#0000ff'
    d3.select(this).style('fill', nextColor)
  )

但是,bars.selectAll('rect')不会改变矩形的颜色。为什么?

1 个答案:

答案 0 :(得分:5)

attr()替换为style()。所以你的行:

bars.selectAll('rect').attr('fill', '#0000ff')

应该是:

bars.selectAll('rect').style('fill', '#0000ff')