onclick不在Sankey图中使用d3.behavior.drag()

时间:2017-11-03 22:13:04

标签: d3.js sankey-diagram

这是Sankey图的代码,我第一次在创建节点时添加了这个代码。它不起作用。

.on("click", function (d) {
        console.log(d);
    })

然后我评论了d3.behavior.drag(),然后它发挥了作用。

这样可行。

var node = svg.append("g").selectAll(".node")
    .data(energy.nodes)
    .enter().append("g")
    .attr("class", "node")
    .attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; })
    .on("click", function (d) {
        console.log(d);
    });
    // .call(d3.behavior.drag()
    // .origin(function(d) { return d; })
    // .on("dragstart", function() { this.parentNode.appendChild(this); })
    // .on("drag", dragmove));

这不起作用。

var node = svg.append("g").selectAll(".node")
    .data(energy.nodes)
    .enter().append("g")
    .attr("class", "node")
    .attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; })
    .on("click", function (d) {
        console.log(d);
    })
    .call(d3.behavior.drag()
    .origin(function(d) { return d; })
    .on("dragstart", function() { this.parentNode.appendChild(this); })
    .on("drag", dragmove));

有人能说出原因吗?如何添加onclick事件?

感谢您的帮助!!!

0 个答案:

没有答案