0

我只是在学习并尝试同时对其进行编码,这是我拥有的代码,如果我取出drill方法并取出 .click(drill) 那么到目前为止一切正常,它会从我发送给它的数据

$( document ).ready(function() {


    var dataset = gon.data;

    d3.select("body").selectAll("div")
        .data(dataset)
        .enter()
        .append("div")
        .attr("class", "bar")
        .click(drill)
        .style("height", function(d) {
            return d.brand_name + "px";
        });

    function drill (event) {
        var target = event.currentTarget;
        var data = $(target).data();
        console.log(data);
    }
});  

但是我无法向这些条形图添加“点击”事件,这样当我点击它们时,我就可以知道我点击了哪个图表。上面的代码是我尝试将“点击”事件添加到我绘制的图表中失败的结果......正确的方法是什么?

4

1 回答 1

2

如果您希望 D3 传递附加的对象和数据,您可以使用 .on("click", Drill)。

 function drill(d, i) {
      console.log(d); //data object
      console.log(i); //array position
      console.log(this); //DOM element
 }

如果您想在没有 D3 包装器的情况下遵循标准 HTML,也可以使用 .attr("onclick", "drill()") 语法。

于 2013-05-21T20:03:31.160 回答