双击d3删除路径

时间:2016-06-13 15:21:07

标签: javascript d3.js svg

我有以下代码在SVG画布上添加一行。当我双击路径时,我可以运行示波器,因为弹出警告框但是线本身不会被删除。我哪里错了?我错误地使用this吗?

var lineFunction = d3.svg.line()
                     .x(function(d) { return d.x; })
                     .y(function(d) { return d.y; })
                     .interpolate("step");

lineGraph = layer.append("path")
              .attr("d", lineFunction(lineData))
              .attr("stroke", "black")
              .attr("stroke-width", 1)
              .attr("fill", "none")
              .attr("id","aggregation")
              .attr("data", "newline")
              .style('marker-end', "url(#end-arrow)")
              .on("dblclick",function(d){
                alert("double");
                d3.this.remove();
              });

1 个答案:

答案 0 :(得分:2)

需要在D3选择上调用方法.remove()。在事件处理程序中,您可以通过执行

获取包含作为事件目标的元素的选择
d3.select(this)

因此,将处理程序更改为

.on("dblclick",function(d){
   d3.select(this).remove();
});

应该这样做。