在D3,如果你定義的拖動功能是這樣的:D3鼠標事件 - 點擊&DragEnd
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元素中拖動事件的點擊和結束,解決方案是什麼?
但該解決方案在Chrome上不起作用。我的意思是dragend總是在點擊之前觸發 – mhd