Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Eventos superpuestos

Estas en el tema de Eventos superpuestos en el foro de Javascript en Foros del Web. Buenas Tengo un div con un evento onclick que hace una redirección y dentro de esta tengo otro elemento div con un id con el ...
  #1 (permalink)  
Antiguo 17/02/2016, 09:56
 
Fecha de Ingreso: febrero-2009
Mensajes: 16
Antigüedad: 15 años, 2 meses
Puntos: 0
Eventos superpuestos

Buenas

Tengo un div con un evento onclick que hace una redirección y dentro de esta tengo otro elemento div con un id con el que jquery realiza una acción. ¿Cómo puedo evitar que al pinchar en el div interno se ejecute el evento onclick del padre? He probado a poner la funcion preventDefault pero no hace nada.

Muchas gracias
Saludos
  #2 (permalink)  
Antiguo 17/02/2016, 10:18
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Eventos superpuestos

Con ese método solo saltas la fase de captura, pero no la de bubbling. Necesitas utilizar el método .stopPropagation(), o, mi preferido, .stopImmediatePropagation().

¿Cuál es la diferencia?

El primero evita que el evento se propague en los ancestros del elemento, mientras que el segundo hace lo mismo; además, evita que se ejecuten otras funciones manejadoras o handlers asociadas al evento registrado en el elemento.

Un ejemplo:
Código Javascript:
Ver original
  1. Elemento.addEventListener("evento X", function(event){
  2.     //Instrucciones A
  3.     event.stopPropagation();
  4. });
  5.  
  6. Elemento.addEventListener("evento X", function(){
  7.     //Instrucciones B (sí se ejecutarán)
  8. });
Código Javascript:
Ver original
  1. Elemento.addEventListener("evento X", function(event){
  2.     //Instrucciones A
  3.     event.stopImmediatePropagation();
  4. });
  5.  
  6. Elemento.addEventListener("evento X", function(){
  7.     //Instrucciones B (no se ejecutarán)
  8. });

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 19/02/2016 a las 12:57 Razón: Ejemplo
  #3 (permalink)  
Antiguo 18/02/2016, 06:14
 
Fecha de Ingreso: febrero-2009
Mensajes: 16
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Eventos superpuestos

Muchas gracias!

Ese era el problema.

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 21:36.