Eu estou tentando entender essa diferença particular entre os diretos e delegados manipuladores de eventos usando o jQuery .no () método . Especificamente, a última frase deste parágrafo:
Quando a
selector
é fornecido, o manipulador de eventos é chamado de delegado . O manipulador não é chamado quando o evento ocorre diretamente no elemento vinculado, mas apenas para descendentes (elementos internos) que correspondem ao seletor. jQuery borbulha o evento do destino do evento até o elemento em que o manipulador está anexado (ou seja, do elemento mais interno ao mais externo) e executa o manipulador para quaisquer elementos ao longo desse caminho que correspondam ao seletor.
O que significa "executa o manipulador para quaisquer elementos"? Eu fiz uma página de teste para experimentar o conceito. Mas as duas construções a seguir levam ao mesmo comportamento:
$("div#target span.green").on("click", function() {
alert($(this).attr("class") + " is clicked");
});
ou,
$("div#target").on("click", "span.green", function() {
alert($(this).attr("class") + " is clicked");
});
Talvez alguém possa se referir a um exemplo diferente para esclarecer esse ponto? Obrigado.