Ho un insieme di elementi nidificati (SVG). L'elemento radice è il grafico e i bambini sono elementi nel grafico (linee, assi, ecc.). esempio semplificato:L'evento d3.on ("mouseover") non funziona con elementi SVG nidificati
<g transform="translate(80,10)" id="mainGraph">
<g class="Line">
<path d="....."></path>
</g>
</g>
Il mio problema è che se mi legano un passaggio del mouse/evento MouseMove (con D3.on ("passaggio del mouse") per esempio) per l'elemento mainGraph, si innesca solo se mi muovo il mouse su una degli elementi del bambino.
Una delle cose che ho letto è che c'è la priorità degli elementi successivi, quindi ho aggiunto .style ("pointer-events", "none") a tutti gli elementi figli, ma non ha funzionato.
uso di 'G' dovrebbe funzionare se si imposta le dimensioni in modo esplicito. –
Un elemento 'g' (a differenza di' div') è solo un contenitore informe, e quindi non ha dimensioni. Quindi, se vuoi che il mouseover si applichi a un'area rettangolare, dovrai specificare un contenuto rettangolare come questo 'rect'. Tuttavia, un perfezionamento utile sta usando fill: none e pointer-events: tutti gli stili. – mbostock
@mbostock fa alcuna differenza se si usano gli eventi puntatore direttamente sull'elemento e se lo si imposta nelle sue proprietà CSS? Un elemento '' 'percorso''' all'interno di' '' g''' si comporta allo stesso modo? – amenadiel