我有一組嵌套的元素(SVG)。根元素是圖形,子元素是圖形中的元素(線,軸等)。簡化的例子:d3.on(「mouseover」)事件不適用於嵌套的SVG元素
<g transform="translate(80,10)" id="mainGraph">
<g class="Line">
<path d="....."></path>
</g>
</g>
我的問題是,如果我結合鼠標懸停/ mousemove事件(與D3.on(「鼠標懸停」)例如)到mainGraph元件,它只有當我將鼠標移動到一個觸發的子元素。
我讀過的一件事是後面的元素有優先權,所以我給所有的子元素添加了.style(「pointer-events」,「none」),但那不起作用。
使用'g'如果明確設置它的尺寸應該工作。 –
'g'元素(不像'div')只是一個沒有形狀的容器,所以沒有尺寸。因此,如果您希望將鼠標懸停應用於矩形區域,則需要指定矩形內容,例如「rect」。然而,一個有用的改進是使用fill:none和pointer-events:所有樣式。 – mbostock
@mbostock如果直接在元素上使用指針事件與在CSS屬性中設置它有什麼不同? ''''g'''中的''''''''''元素的行爲方式是否相同? – amenadiel