В 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, каково было бы решение?