Tag: 事件绑定

直接与委托 – jQuery .on()

我想了解使用jQuery .on()方法 直接和委托事件处理程序之间的这种特殊区别。 具体来说,这一段的最后一句话是: 当提供selector ,事件处理程序被称为委托 。 当事件直接发生在绑定元素上时,处理程序不会被调用,但是只有匹配select器的后代(内部元素)才会调用该处理程序。 jQuery将事件从事件目标拖动到处理程序所在的元素(即,最内层到最外层的元素),并沿着匹配select器的path上的任何元素运行处理程序。 这是什么意思“运行处理程序的任何元素”? 我做了一个testing页面来实验这个概念。 但是下面的结构都会导致相同的行为: $("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"); }); 也许有人可以参考一个不同的例子来澄清这一点? 谢谢。