2
我具有類似於下面的SVG結構:d3js鼠標移動事件不冒泡
<svg>
<g id="main-group">
...
<rect id="event-rect"></rect>
</g>
</svg>
和我已附加相同的事件到#事件RECT和#主族
d3.select('#event-rect').on('mousemove', clb);
d3.select('#main-group').on('mousemove', clb2);
這裏的問題是第一個clb被觸發,而父節點(即#main-group)的事件偵聽器不是。
爲什麼事件冒泡階段不在這裏工作?
使用實際的代碼是:
d3.select('#event-rect').on('mousedown', mousedown);
d3.select('#event-rect').on('mousemove', mousemove);
d3.select('#event-rect').on('mouseup', mouseup);
然後在另一個模塊附上同一組中的事件:
d3.select('#main-group').on('mousedown', dragStart);
d3.select('#main-group').on('mousemove', mousemove);
d3.select('#main-group').on('mouseup', dragEnd);
所有的回調被調用,除了在dragstart。我對我沒有任何意義
是的,但事件冒泡怎麼樣。不應該將mousemove事件提升到其父節點?我認爲這就是普通的dom元素如何行動 – ppoliani
啊,是的,對不起,我誤解了你的問題。這對我來說工作正常 - 你可以發佈完整的代碼嗎? –
對不起,我犯了一個錯誤。我對'mousedown'事件有問題。 mousemove事件也爲我冒泡。 – ppoliani