gpt4 book ai didi

javascript - 调用 jquery .on(document.body) 而不是特定元素有缺点吗

转载 作者:行者123 更新时间:2023-12-02 17:42:45 30 4
gpt4 key购买 nike

我正在将项目中使用的 jQuery 版本升级到最新最好的版本。 .live 函数在许多地方使用来更改动态创建的显示并且工作得很好,但是 .live 功能在 jQuery 的更高版本中被删除,因此需要重新工具。

作为标准化编码的一种方式,我正在考虑将该函数调用为:

$(document.body).on('click', '#clickableElement', function(){})

而不是

$("#clickableElement').on('click', function(){})

即使click方法不会在动态创建的对象上执行。

考虑到它是一个内部网站、用户数量较少并且所有元素都提供了 ID,您认为这个想法有什么缺点吗?

最佳答案

事件委托(delegate)是推荐的模式,因为它有助于避免当事件处理程序附加到稍后从 DOM 中删除的 DOM 元素时可能发生的内存泄漏。

在大多数情况下,选择器强制 JS 遍历 DOM 树、识别所有匹配项并将事件处理函数的新实例附加到每个匹配元素,它的速度也会更快。

虽然在非常具体的 ID 示例中情况可能并非如此,但将其用作通用方法没有任何缺点。在文档根部进行委派的唯一真正缺点是,在事件到达正文之前有可能会取消事件,从而阻止事件冒泡到您的处理程序。

关于javascript - 调用 jquery .on(document.body) 而不是特定元素有缺点吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22047977/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com