输入(子)选择不触发

时间:2018-12-15 02:00:29

标签: d3.js

给出以下文档,

此处的运行示例:https://blockbuilder.org/max-l/497143f7e012e488d413c43d098db462

var svg = d3.select("body").append("svg")
  .attr("width", 960).attr("height", 500)

svg.append("text")
    .text("update").attr("y", 100).attr("font-size", 36)              
    .on("click", () => {            
        data[0].counter += 1
        update()
    })                          

const data = [{id: 123, counter:0}]

以下输入选择永远不会触发, 如果我更改了选择的评论 即:d3.selectAll(“ text.counter”) 然后适当输入和更新选择项, 但是问题是插入在文档中, 不是svg元素的子元素

const update = () => {

  const counter = 
     d3.select("svg").selectAll("text.counter")
     //d3.selectAll("text.counter")
        .data(data, c=>c.id)

  counter
    .enter()
    .append("text")
    .attr("class","counter")
    .merge(counter) 
    .text(c => c.counter)
}

update()

1 个答案:

答案 0 :(得分:0)

给文本一些位置

  counter
    .enter()
    .append("text")
    .attr("class","counter")
    .attr("y", 50)
    .merge(counter)
    .text(c => c.counter);