2009-02-25 10 views
6

Sto provando a creare un sito in cui l'utente può fare clic su qualsiasi elemento per modificarlo. Io uso il seguente per aggiungere la funzione click a tutti i lis, div e uls.È possibile avere il trigger jQuery.click solo sull'elemento superiore?

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

alert(this.id); 

}); 

Il problema è che se clicco su un elemento li, allora ottengo l'avviso per questo, e ogni elemento sotto di esso. (tutti i contenitori).

È possibile avere solo il trigger dell'elemento superiore quando si fa clic su?

risposta

17

Si desidera interrompere la propagazione dell'evento, lo si fa in jQuery chiamando il metodo stopPropagation sull'oggetto evento.

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

Credo che si voglia utilizzare stopPropagation(); all'interno della funzione click.

1

Mi sembra che stiate cercando .stopPropagation(). Chiamando stopPropagation si impedirà all'evento di "ribollire" fino ai contenitori principali.

Problemi correlati