Foros del Web » Programando para Internet » Javascript »

Evitar heredación de eventos

Estas en el tema de Evitar heredación de eventos en el foro de Javascript en Foros del Web. Hola!, Como puedo hacer para evitar que un evento se propage a sus nodos hijo. Por ejemplo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: Ver original < div ...
  #1 (permalink)  
Antiguo 18/07/2011, 23:50
 
Fecha de Ingreso: julio-2011
Ubicación: Zapopan, Jal. MX
Mensajes: 316
Antigüedad: 12 años, 10 meses
Puntos: 32
Evitar heredación de eventos

Hola!,

Como puedo hacer para evitar que un evento se propage a sus nodos hijo.

Por ejemplo:

Código HTML:
Ver original
  1. <div id="nodo_padre" onclick="alert(this.id)">
  2. NODO PADRE
  3.   <div id="nodo_hijo">NODO HIJO</div>
  4. </div>

Al dar click en el nodo hijo también se clickea y sólo quiero que el nodo padre dispare el evento.

Sé que si agrego stopPropagation de esta forma: <div id="nodo_hijo" onclick="event.stopPropagation()">NODO HIJO</div> si se detiene el evento, pero quisiera saber si hay otra forma de detenerlos para no tener que crear un onclick por cada hijo que tenga el nodo padre.

Saludos
  #2 (permalink)  
Antiguo 19/07/2011, 00:06
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Evitar heredación de eventos

Fijate si te sirve:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title>Documento sin título</title>
<
style>
#p{ width:200px; height:200px; background:#F00; position:relative}
#h{ width:50px; height:50px; position:absolute; left:75px; top:75px; background:#36F}
</style>
</
head>

<
body>
<
div id="p" onclick="ob=event.srcElement || event.target;if(ob==this)alert(this.id)">
  <
div id="h"></div>
</
div>
</
body>
</
html
  #3 (permalink)  
Antiguo 19/07/2011, 11:10
 
Fecha de Ingreso: julio-2011
Ubicación: Zapopan, Jal. MX
Mensajes: 316
Antigüedad: 12 años, 10 meses
Puntos: 32
Respuesta: Evitar heredación de eventos

Hola!, es una buena forma gracias!, aunque seguiré estudiando acerca de los eventos en javascript por que necesito tener un mejor entendimiento, igual agradezco si alguien puede aportarme algo más de información, saludos!
  #4 (permalink)  
Antiguo 19/07/2011, 11:23
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Evitar heredación de eventos

buenas,
una referencia en español que considero bastante explicada, http://kusor.net/traducciones/brainj...vents2.es.html. otras referencias que puedes consultar: w3c, quirksmode. en tu caso particular, considero que lo más que te debe interesar es respecto al flujo de propagación de los eventos, el cual consiste en tres fases: capture, target y bubble. sin embargo, tambien debes considerar el aspecto de la compatibilidad de los navegadores con el modelo estandar.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 19/07/2011 a las 11:29
  #5 (permalink)  
Antiguo 20/07/2011, 11:05
 
Fecha de Ingreso: julio-2011
Ubicación: Zapopan, Jal. MX
Mensajes: 316
Antigüedad: 12 años, 10 meses
Puntos: 32
Respuesta: Evitar heredación de eventos

Gracias lo leeré.
  #6 (permalink)  
Antiguo 20/07/2011, 12:55
 
Fecha de Ingreso: julio-2011
Ubicación: Zapopan, Jal. MX
Mensajes: 316
Antigüedad: 12 años, 10 meses
Puntos: 32
Respuesta: Evitar heredación de eventos

Listo!, leído y compredído me bastó con el primer artículo que me pasaste para mis requerimientos actuales, básicamente mi problema era acerca de la captura de eventos y el burbujeo, además la propiedad relatedTarget del objeto event me servirá mucho para cuándo use mouseout. Gracias y Saludos

Etiquetas: eventos
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 20:35.