在 D3 中,如果您定义了这样的拖动功能:
var drag = d3.behavior.drag()
.on("drag", function () {alert("drag")})
.on("dragend", function () {alert("dragEnd")});
你真的不能做以下事情:
d3.select("#text1")
.on("click", function(d,i) {alert("clicked")})
.call(drag);
原因是点击会在“dragend”触发之后触发。在我看来,应该有一个单独的点击事件,因为我看到 dragend 和 click 之间存在巨大差异。
为了区分 SVG 元素中拖动事件的单击和结束,解决方案是什么?