He creado el siguiente documento:¿Cómo acceder al parentNode de una selección d3.js?
<g>
<path class="line" name="gene_1" stroke="#aec7e8" d="M10.47..."></path>
<path class="line" name="gene_2" stroke="#aec7e8" d="M10.47..."></path>
<path class="line" name="gene_3" stroke="#aec7e8" d="M10.47..."></path>
...
</g>
Cuando ratón sobre cada camino que quiero para anexar la última en el interior del SVG: g por lo que aparece en la parte superior de las otras líneas, pero no sé cómo seleccionar adecuadamente el parentNode:
function onmouseover(d, i){
var current_gene_name = d3.select(this).attr("name"),
current_gene_pcp = d3.select(".line[name=" + current_gene_name + "]");
p1 = this.parentNode
p2 = current_gene_pcp[0].parentNode
p3 = current_gene_pcp[0][0].parentNode
//p.appendChild(this);
}
P1 funciona, pero quería asegurarse de que "este" es un .line, por lo que he preferido utilizar current_gene_pcp, pero p2 devuelve <html></html>
como el padre, a pesar de que p3 devuelve el número correcto <g></g>
. Esta última versión parece un error esperando a suceder. ¿Hay una mejor manera?
Este comportamiento es inestable. Cuando pruebo esto en Chrome en combinación con los estilos ': hover', los estilos se aplican correctamente. Cuando intento esto en Firefox (v20), los estilos no se aplican en absoluto. Cuando elimino este código 'mouseover', los estilos se aplican correctamente en Firefox. Supongo que esto es causado por el mouseover de un elemento que intenta eliminarse antes de volverse a unir como el último hijo de su DOM. –