Consente di dire che abbiamo una struttura HTML come questoevento Mastering bubbling
<div id="container">
<div id="nested">
<span id="someElement"></span>
</div>
</div>
... e il nostro obiettivo è quello di avere un listener di eventi sul #container
solo! Quindi, noi leghiamo un ascoltatore (codice jQuery)
$("#container").on('click', function(event) {
alert("container was clicked");
});
che funziona, naturalmente, ma il mio problema con questo approccio è che, dal momento che gli eventi di solito bolla, che ascoltatore anche sparare se abbiamo effettivamente clicchiamo su #nested
o #someElement
. La mia soluzione attuale solo gestire il click quando il #container
viene cliccato è quello di confrontare this
con event.target
$("#container").on('click', function(event) {
if(this === event.target) {
alert("container was clicked");
}
});
La mia domanda: che considerava "best practice"? C'è un modo migliore con jQuery per ottenere lo stesso risultato "out of the box"?
Esempio in azione: http://jsfiddle.net/FKX7p/
IMO, questa è la migliore pratica. – VisioN
@jSang: In realtà gli elementi interni non hanno ascoltatori su un clic. È considerata una buona pratica? associare ogni elemento solo per fermare la propagazione? –
Non vedo neanche un approccio migliore, infatti, stavo per postarlo come risposta finché non ti ho visto che hai già quel codice. –