gpt4 book ai didi

javascript - jQuery 类选择器事件绑定(bind)是否将 eventHandler 附加到每个实例?

转载 作者:行者123 更新时间:2023-11-29 10:17:34 24 4
gpt4 key购买 nike

我正在学习 jQuery,当我读到有关 $('.className').bind('click',function(){}) 方法时,我产生了一个疑问。

此方法是否将我的事件处理程序附加到 DOM 中 className 的每个实例?如果是这样,那将是一个好方法——比如将事件处理程序附加到页面上的许多实例是一种开销,对吗?

或者它是否利用了事件委托(delegate)——比如说,处理程序将绑定(bind)到某个公共(public)父级,该父级将使用 e.target equalTo className 并执行点击事件,以便处理程序只绑定(bind)到一个 DOM 元素?

请帮助我理解。谢谢。


还有一个疑问。如果我确实将事件附加到每个 dom 元素,重载会在哪里生效?它会在执行时对浏览器造成额外的负载还是会使 dom 变重(我的意思是变重,难以解析 dom)?

最佳答案

它确实会将您的回调绑定(bind)到这些元素中的每一个。如果你有很多元素匹配选择器,使用事件委托(delegate)肯定更好。

但是,您不必手动摆弄 e.target。 jQuery 重载了 .on()专门针对这个场景的方法:

$('#parent').on('click', '.children', function (){});

您应该始终将事件处理程序附加到尽可能最近的父级,以便最少数量的元素将受到事件监听器的影响。

关于javascript - jQuery 类选择器事件绑定(bind)是否将 eventHandler 附加到每个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18597985/

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