Je suis en train de comprendre cette différence particulière entre les directs et délégués des gestionnaires d'événements en utilisant le jQuery .on () méthode . Plus précisément, la dernière phrase de ce paragraphe:
Lorsqu'un
selector
est fourni, le gestionnaire d'événements est appelé délégué . Le gestionnaire n'est pas appelé lorsque l'événement se produit directement sur l'élément lié, mais uniquement pour les descendants (éléments internes) qui correspondent au sélecteur. jQuery fait remonter l'événement de la cible de l'événement jusqu'à l'élément auquel le gestionnaire est attaché (c'est-à-dire du plus profond à l'élément le plus externe) et exécute le gestionnaire pour tous les éléments le long de ce chemin correspondant au sélecteur.
Que signifie "exécute le gestionnaire pour tous les éléments"? J'ai fait une page de test pour expérimenter le concept. Mais les deux constructions suivantes conduisent au même comportement:
$("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");
});
Peut-être que quelqu'un pourrait se référer à un exemple différent pour clarifier ce point? Merci.