Ich versuche, diesen besonderen Unterschied zwischen den direkten und delegierten Ereignishandlern mithilfe der Methode jQuery .on () zu verstehen . Insbesondere der letzte Satz in diesem Absatz:
Wenn a angegeben
selector
ist, wird der Ereignishandler als delegiert bezeichnet . Der Handler wird nicht aufgerufen, wenn das Ereignis direkt auf dem gebundenen Element auftritt, sondern nur für Nachkommen (innere Elemente), die dem Selektor entsprechen. jQuery sprudelt das Ereignis vom Ereignisziel bis zu dem Element, an das der Handler angehängt ist (dh vom innersten zum äußersten Element), und führt den Handler für alle Elemente entlang dieses Pfads aus, die dem Selektor entsprechen.
Was bedeutet "führt den Handler für Elemente aus"? Ich habe eine Testseite erstellt , um mit dem Konzept zu experimentieren. Beide folgenden Konstrukte führen jedoch zum gleichen Verhalten:
$("div#target span.green").on("click", function() {
alert($(this).attr("class") + " is clicked");
});
oder,
$("div#target").on("click", "span.green", function() {
alert($(this).attr("class") + " is clicked");
});
Vielleicht könnte sich jemand auf ein anderes Beispiel beziehen, um diesen Punkt zu verdeutlichen? Vielen Dank.