我试图理解使用jQuery .on()方法的直接事件处理程序和委托事件处理程序之间的特殊区别。具体来说,本段的最后一句话:
当
selector
被提供时,事件处理程序被称为委托。当事件直接发生在绑定元素上时,不调用处理程序,而仅对与选择器匹配的后代(内部元素)进行调用。jQuery使事件从事件目标一直冒泡到附加了处理程序的元素(即,最内层元素到最外层元素),并沿该路径运行与选择器匹配的任何元素的处理程序。
“为任何元素运行处理程序”是什么意思?我做了一个测试页面来试验这个概念。但是以下两个构造导致相同的行为:
$("div#target span.green").on("click", function() {
alert($(this).attr("class") + " is clicked");
});
要么,
$("div#target").on("click", "span.green", function() {
alert($(this).attr("class") + " is clicked");
});
也许有人可以参考其他示例来阐明这一点?谢谢。