我有以下代码在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();
});
答案 0 :(得分:2)
需要在D3选择上调用方法.remove()
。在事件处理程序中,您可以通过执行
d3.select(this)
因此,将处理程序更改为
.on("dblclick",function(d){
d3.select(this).remove();
});
应该这样做。