鼠标悬停时的事件委托

2023-12-04

创建单击事件时,我尽力只将它们绑定一次 - 通常绑定到预期触发事件的所有节点共享的父节点。然而,我很好奇,鼠标悬停事件的最佳实践是什么:当结果是鼠标悬停时不断触发事件时,将事件绑定到父级是否仍然有意义?最有效的做法是什么?


为了解决这个问题,我将解释/引用这个答案中的一些相关注释:'所有 jquery 事件都应该绑定到 $(document) 吗?',@Faust 上面引用了这一点:

事件委托并不总是能让你的代码更快。除非您绑定到动态元素或大量元素,否则您应该将事件处理程序直接绑定到事件发生的对象,因为这通常会更有效。

更具体地说,以下是需要事件委托或具有优势的时候:

  • 当您捕获事件的对象是动态创建/删除的时,您仍然希望捕获它们的事件,而不必在每次创建新事件处理程序时显式重新绑定事件处理程序。
  • 当您有很多对象都需要完全相同的事件处理程序时(其中数量至少有数百个)。在这种情况下,在设置时绑定一个委托事件处理程序可能比绑定数百个或更多直接事件处理程序更有效。请注意,委托事件处理在运行时的效率始终低于直接事件处理程序。
  • 当您尝试捕获(在文档中的较高级别)文档中任何元素上发生的事件时。
  • 当您的设计明确使用事件冒泡和 stopPropagation() 来解决页面中的某些问题或功能时。

@jfriend00 的原始答案

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

鼠标悬停时的事件委托 的相关文章

随机推荐

  • 从 ADUser DistinguishedName 获取 CN 值

    我有一个 PS 脚本 用于检查 Active Directory 中某些自定义用户的属性 属性之一是 经理 data Get ADUser user Properties Select Object DisplayName LockedOu
  • collections.sort方法仅用于List类型的集合吗?

    朋友们 我是 Java Collection 的新手 我想问一下Collections sort 方法仅用于 由集合使用List类型 我无法对以下代码进行排序 Collection collection new HashSet collec
  • Cosmos DB 查询 - 当某个属性不存在于所有文档中时使用 ORDER BY

    我们在为 Cosmos Document DB 编写查询时遇到问题 我们想要创建一个新的文档属性并在 ORDER BY 子句中使用它 例如 如果我们有一组文档 例如 Name Geoff Company Acme Name Bob Comp
  • 为什么字体较小时高度会增加?

    我有一个具有一定行高的块 我在其中插入内容 before伪元素 block before content text here 这效果很好 但是 如果我也给内容设置较小的字体大小 block before font size 6em cont
  • 为什么main在没有变量的情况下初始化堆栈帧

    为什么这段代码 include stdio h int main void puts Hello World 决定初始化堆栈帧 这是汇编代码 LC0 string Hello World main push rbp mov rbp rsp
  • core-plot 从轴标签中删除小数点

    有人可以告诉我如何从轴标签中删除小数点吗 我希望只显示 10 个 而不是 10 0 CPTXYAxis x axisSet xAxis NSNumberFormatter Xformatter NSNumberFormatter alloc
  • 单个列表到字典

    我有这个清单 single key1 value1 key2 value2 key3 value3 由此创建字典的最佳方法是什么 Thanks gt gt gt single key1 value1 key2 value2 key3 val
  • Android-列表视图、服务媒体播放器和布尔标志

    我目前有一个listview当您单击某个项目时 它会运行service with a mediaplayer 如果我点击另一个项目listview the service正在运行的应该停止并运行新的service 我正在使用一个boolea
  • set -e 在 bash 脚本中意味着什么?

    我正在研究这个内容preinst在从 Debian 存档 deb 文件中解压该包之前脚本执行的文件 该脚本有以下代码 bin bash set e Automatically added by dh installinit if 1 ins
  • 将 Unicode 转换为 python [重复]

    这个问题在这里已经有答案了 可能的重复 将 Unicode 转换为 UTF 8 Python 我是一个非常新的 Python 程序员 正在编写我的第一个脚本 该脚本从 plist 字符串中提取文本 然后对其执行一些操作 然后将其打包为 HT
  • 在树视图中搜索并突出显示/选择包含所搜索项目的行

    我正在使用 tkinter 和 treeview 为患者列表制作一个简单的 GUI 其中包含患者姓名和就诊日期 我有一个条目 用户应在其中输入患者姓名 想法是患者姓名是否位于列表 包含要突出显示 选定 的患者姓名的行 或多行 或者另一个选项
  • Mac OS X 10.6.8 上的 gcc-4.2.1 中不存在 strnlen - 如何定义它?

    我正在构建最新的跨平台 OS X 版本dcraw c我在 OS X 10 6 8 上执行此操作是为了具有 PPC 兼容性 现在我的问题是 strnlen 似乎在最新版本的程序中使用 但它在 10 6 8 上不存在 并且 gcc 给我这样的消
  • 模板类和类模板有什么区别?

    模板类和类模板有什么区别 这是许多人 包括维基百科上的通用编程页面 一些 C 教程以及此页面上的其他答案 的常见困惑点 就 C 而言 不存在 模板类 这样的东西 只有 类模板 该短语的解读方式是 类的模板 而不是 函数模板 函数模板 是 函
  • 具有相似参数的路由上的路由参数模式

    我有一些使用几个 UUID 作为参数的路由 Route get foo uuid1 uuid2 Controller action 我希望能够在将控制权传递给操作之前验证这些参数的格式是否正确 Route pattern uuid1 a f
  • 我如何在 React router v6 中用上下文包装 2 个路由

    我如何在 React Router v6 的上下文中包装 2 个路由 只有这两个应该暴露给该上下文 并且我无法单独设置上下文 因为上下文运行一些代码 useEffect 如果我这样做 它会在每次切换路由时触发 我希望它在加载两条路线之前触发
  • VB.NET - 背景淡出就像 UAC 消息中一样?

    Hello 当 的时候UAC在 Windows Vista 7 或 8 中显示消息时 后台将无法访问 直到用户从消息对话框中进行选择 是否可以使用 VB NET 程序来完成此操作 以使后台无法访问 直到用户从表单中进行选择 我想要的是当 U
  • 替换 pandas 多索引中的值

    我有一个具有多索引的数据框 当满足第一个索引的某些条件时 我想更改第二个索引的值 我在这里发现了一个类似 但不同 的问题 替换 MultiIndex 中的值 pandas 这并没有回答我的观点 因为那是关于更改单行 并且解决方案也传递了第一
  • Sklearn 错误,数组有 4 个暗淡。估计器 <=2

    我一直在尝试通过 panda 从雅虎财经导入数据 然后通过 as matrix 将其转换为数组 然后当我将数据输入分类器进行训练时 它给了我一个错误 ValueError Found array with dim 4 Estimator e
  • 按向量、行而不是列划分数据框[重复]

    这个问题在这里已经有答案了 我有这个数据框和向量 我想用它来划分行 div lt c 10 100 1000 df lt as data frame matrix rep 1 9 nrow 3 df lt cbind type as fac
  • 鼠标悬停时的事件委托

    创建单击事件时 我尽力只将它们绑定一次 通常绑定到预期触发事件的所有节点共享的父节点 然而 我很好奇 鼠标悬停事件的最佳实践是什么 当结果是鼠标悬停时不断触发事件时 将事件绑定到父级是否仍然有意义 最有效的做法是什么 为了解决这个问题 我将