点击事件中无法访问D3中的数据?

时间:2016-02-14 06:40:22

标签: javascript jquery d3.js

我得到的问题是,当我在点击事件中执行console.log(d.info)时,只要点击我的svg元素,我就会设置为触发,我得到一个未定义的错误控制台。

有没有办法从我保存在infoData变量中的csv文件中访问我的数据?

提前致谢!

d3.csv("../data/dataset.csv", function(data) {
  var infoData = data;

  var svg = d3.select(".container").append("svg")
    .attr("width", 500)
    .attr("height", 500);

  svg.selectAll("rect")
    .data(infoData)
    .enter()
    .append("rect")
    .attr("fill", "#0000ff")
    .attr("width", function(d, index) {
      return (d.width);
    })
    .attr("height", 80);

  $(document).ready(function(d) {
    svg.on("click", function(event, d) {
      console.log(d.info);
    });
  });
});

1 个答案:

答案 0 :(得分:0)

将点击处理程序移动到您定义rect的位置:

svg.selectAll("rect")
    .data(buildingData)
    .enter()
    .append("rect")
    .attr("fill", "#0000ff")
    .attr("width", function(d, index) {
      return (d.width);
    })
    .attr("height", 80)
    .on('click', function(event, d) {
        console.log(d.info);
    })
相关问题