当前位置: 首页 > 面试题库 >

JavaScript直接与委托-jQuery .on()

缑勇锐
2023-03-14
问题内容

我正在尝试使用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");
});

也许有人可以参考其他示例来阐明这一点?谢谢。


问题答案:

情况1(直接):

$("div#target span.green").on("click", function() {...});

==嘿!我希望div#target内的每个span.green都监听:单击时,请执行X。

案例2(授权):

$("div#target").on("click", "span.green", function() {...});

==嗨,div#target!当您的“ span.green”子元素中的任何一个被单击时,对它们进行X操作。

换一种说法…

在情况1中,已分别给每个跨度指示。如果创建了新的跨度,他们将不会听到指令,也不会响应点击。每个跨度 直接负责 其自身的事件。

在情况2中,仅向容器提供了指令;它负责 代表 其子元素注意到点击。捕获事件的工作已 下放 。这也意味着该指令将针对将来创建的子元素执行。



 类似资料:
  • 问题内容: 我在Web应用程序中使用jQuery。在阅读其文档时,我了解了和。尽管他们解释了这两种方法,但我不了解它们之间的确切区别。也不确定哪种方法在哪种情况下是理想的。 请帮助我清楚地了解这些方法。 谢谢 问题答案: 要求您立即运行选择器,除非您使用的结果非常浪费。这里的事件处理程序是附加到的,因此必须检查所有冒泡的该类型事件。这是一个用法示例: 请注意, 即使我们不在乎 该语句,该选择符 也

  • 主要内容:为什么要使用事件委托,事件委托实现原理,事件委托的优点,总结利用 JS 事件冒泡动态为元素绑定事件的方法称为事件委托(Event Delegation,也称为“事件代理”),是 JavaScript 中最热门的技术之一。 事件委托就是把原本需要绑定在子元素上的事件(onclick、onkeydown 等)委托给它的父元素,让父元素来监听子元素的冒泡事件,并在子元素发生事件冒泡时找到这个子元素。 举个简单的例子,整个宿舍的同学都需要去取快递,一种方法是让他们

  • 本文向大家介绍JavaScript匿名函数与委托使用示例,包括了JavaScript匿名函数与委托使用示例的使用技巧和注意事项,需要的朋友参考一下

  • 主要内容:类委托,属性委托,标准委托,可观察属性 Observable,把属性储存在映射中,Not Null,局部委托属性,属性委托要求,翻译规则,提供委托委托模式是软件设计模式中的一项基本技巧。在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。 Kotlin 直接支持委托模式,更加优雅,简洁。Kotlin 通过关键字 by 实现委托。 类委托 类的委托即一个类中定义的方法实际是调用另一个类的对象的方法来实现的。 以下实例中派生类 Derived 继承了接口

  • 主要内容:声明委托,实例化委托,多播委托(合并委托)C# 中的委托(Delegate)类似于 C 或 C++ 中的函数指针,是一种引用类型,表示对具有特定参数列表和返回类型的方法的引用。委托特别适用于实现事件和回调方法,所有的委托都派生自 System.Delegate 类。在实例化委托时,可以将委托的实例与具有相同返回值类型的方法相关联,这样就可以通过委托来调用方法。另外,使用委托还可以将方法作为参数传递给其他方法, 委托具有以下特点: 委托类似

  • 关于“行为委派”的良好讨论可以在 找到。