2009-02-25 7 views
6

Estoy tratando de hacer un sitio donde el usuario pueda hacer clic en cualquier elemento para editar su CSS. Uso lo siguiente para agregar la función de hacer clic a todas las lis, divs y uls.¿Es posible tener el jQuery.click trigger solo en el elemento superior?

$('li,div,ul').click(function() { 

alert(this.id); 

}); 

El problema es que si hago clic en un elemento li, entonces consigo la alerta para eso, y ningún elemento por debajo de ella. (todos los contenedores).

¿Es posible tener solo el disparador del elemento superior cuando se hace clic?

Respuesta

17

Si desea detener la propagación de eventos, haga esto en jQuery llamando al método stopPropagation en el objeto de evento.

$('li,div,ul').click(function (e) { 
    e.stopPropagation(); 
    alert(this.id); 
}); 
1

Creo que le gustaría usar stopPropagation(); dentro de la función de hacer clic.

1

Me parece que está buscando .stopPropagation(). Llamar a stopPropagation evitará que el evento "burbujee" hasta los contenedores principales.

Cuestiones relacionadas