Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] evento solo en nodo padre

Estas en el tema de evento solo en nodo padre en el foro de Javascript en Foros del Web. Buenas gente!! Me he topado con una duda en cuanto a jerarquías en javascript, tengo un mouseout en un div padre y dentro de el ...
  #1 (permalink)  
Antiguo 18/04/2013, 03:18
Avatar de danny_  
Fecha de Ingreso: septiembre-2012
Mensajes: 95
Antigüedad: 11 años, 6 meses
Puntos: 4
evento solo en nodo padre

Buenas gente!!

Me he topado con una duda en cuanto a jerarquías en javascript, tengo un mouseout en un div padre y dentro de el una etiqueta p (hijo del div padre), el cual quiero que no coja ese mouseout.

No se si es un bug de js, pero seguro hay alguna forma de que dicho evento no se expanda a los nodos hijos de un div.

Para mas detalle, es una etiqueta p dentro del div padre con position relative y el nodo padre con position absolute, quiero que ese evento solo se dispare cuando hago mouseout fuera del div padre, pero en cuanto pasa el ratón por encima del div hijo se acciona.

Alguna sugerencia de como poder solucionar este problema??

Saludos!!
  #2 (permalink)  
Antiguo 18/04/2013, 05:03
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 18 años, 10 meses
Puntos: 839
Respuesta: evento solo en nodo padre

Es que no es que el evento se expanda al nodo hijo; una vez que un evento se produce en un nodo se propaga hacia arriba en el DOM, es el comportamiento normal.

En tu caso tienes dos opciones:
- Asignar un listener al evento en el nodo hijo y desde allí detener la propagación (usando stopPropagation)
- En el listener del nodo padre verificar através del target si el evento se produjo en el nodo hijo, y en ese caso ignorarlo.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 19/04/2013, 17:03
Avatar de danny_  
Fecha de Ingreso: septiembre-2012
Mensajes: 95
Antigüedad: 11 años, 6 meses
Puntos: 4
Respuesta: evento solo en nodo padre

waaa... no encuentro la forma. Como se puede ignorar un evento??

Según compruebo con e.target.className me esta lanzando el evento en los dos elementos, pero cómo puedo ignorar el evento en el nodo hijo??

Gracias.
  #4 (permalink)  
Antiguo 20/04/2013, 09:24
Avatar de danny_  
Fecha de Ingreso: septiembre-2012
Mensajes: 95
Antigüedad: 11 años, 6 meses
Puntos: 4
Respuesta: evento solo en nodo padre

Señor moderador es usted muy amable con sus 8 años de experiencia que parece tener, he conseguido realizarlo no con stopPropagation como usted me decía, si no con este gran método relatedTarget que me ha sido de gran utilidad. Al parecer, o es que soy muy novato y torpe a la vez, pero con eventos mouseout la propagación es distinta que con un onclick.
No encontré la forma de ingnorar un evento como usted me habia dicho con su extendida informacion.

De todas formas gracias!

Etiquetas: evento, js, nodo, padre
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:10.