Sto cercando di comprendere questa particolare differenza tra i gestori di eventi diretti e delegati utilizzando il metodo jQuery .on () . In particolare, l'ultima frase in questo paragrafo:
Quando
selector
viene fornito un, il gestore eventi viene definito delegato . Il gestore non viene chiamato quando l'evento si verifica direttamente sull'elemento associato, ma solo per i discendenti (elementi interni) che corrispondono al selettore. jQuery esegue la bolla dell'evento dalla destinazione dell'evento fino all'elemento a cui è collegato il gestore (ovvero, dall'elemento più interno a quello più esterno) ed esegue il gestore per tutti gli elementi lungo quel percorso corrispondenti al selettore.
Che cosa significa "esegue il gestore per qualsiasi elemento"? Ho creato una pagina di prova per sperimentare il concetto. Ma entrambi i costrutti seguenti portano allo stesso comportamento:
$("div#target span.green").on("click", function() {
alert($(this).attr("class") + " is clicked");
});
o,
$("div#target").on("click", "span.green", function() {
alert($(this).attr("class") + " is clicked");
});
Forse qualcuno potrebbe fare riferimento a un esempio diverso per chiarire questo punto? Grazie.