Direct vs. Delegated - jQuery .on()
我试图使用jQuery .on()方法理解直接事件处理程序和委托事件处理程序之间的这种特殊区别。具体来说,这一段的最后一句话:
提供 时,事件处理程序称为委托。当事件直接发生在绑定元素上时,不会调用处理程序,而只会为与选择器匹配的后代(内部元素)调用处理程序。jQuery 将事件从事件目标冒泡到附加处理程序的元素(即,最里面到最外层的元素),并为该路径上与选择器匹配的任何元素运行处理程序。
selector
“运行任何元素的处理程序”是什么意思?我做了一个测试页面来试验这个概念。但以下两种构造都会导致相同的行为:
$("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");
});
也许有人可以引用另一个例子来澄清这一点?谢谢。