相关疑难解决方法(0)

直接与委派 - jQuery .on()

我试图理解使用jQuery .on()方法直接委托事件处理程序之间的这种特殊区别.具体而言,本段最后一句:

selector被提供时,事件处理程序被称为委托.当事件直接发生在绑定元素上时,不会调用处理程序,但仅适用于与选择器匹配的后代(内部元素).jQuery将事件从事件目标起泡到附加处理程序的元素(即最里面到最外层的元素),并为匹配选择器的路径上的任何元素运行处理程序.

"运行任何元素的处理程序"是什么意思?我做了一个测试页面来试验这个概念.但是以下两个结构导致了相同的行为:

$("div#target span.green").on("click", function() {
   alert($(this).attr("class") + " is clicked");
});
Run Code Online (Sandbox Code Playgroud)

要么,

$("div#target").on("click", "span.green", function() {
   alert($(this).attr("class") + " is clicked");
});
Run Code Online (Sandbox Code Playgroud)

也许有人可以参考一个不同的例子来澄清这一点?谢谢.

javascript jquery event-bubbling event-binding jquery-events

157
推荐指数
3
解决办法
4万
查看次数