Javascript jQuery类选择器事件绑定是否将eventHandler附加到每个实例?

Javascript jQuery类选择器事件绑定是否将eventHandler附加到每个实例?,javascript,jquery,event-delegation,Javascript,Jquery,Event Delegation,我正在学习jQuery,当我读到$('.className').bind('click',function(){})方法时,我产生了一个疑问 此方法是否将我的事件处理程序附加到DOM中className的每个实例?如果是这样的话,这会是一种好方法吗?就像将事件处理程序附加到页面上的许多实例是一种开销,对吗 或者它是利用事件委托——比如说,处理程序将绑定到某个公共父级,该父级将使用e.target equalTo className并执行click事件,这样处理程序就只绑定到一个DOM元素 请帮我

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

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

或者它是利用事件委托——比如说,处理程序将绑定到某个公共父级,该父级将使用
e.target equalTo className
并执行click事件,这样处理程序就只绑定到一个DOM元素

请帮我理解。谢谢



还有一个疑问。如果我将事件附加到每个dom元素上,重载在哪里生效?它会在执行时给浏览器带来额外的负载,还是会使dom变得沉重(我的意思是,解析dom时会有困难)?

它确实会将回调绑定到这些元素中的每一个。如果有很多元素与选择器匹配,那么使用事件委派肯定会更好

但是,您不必手动摆弄
e.target
。jQuery具有专门用于此场景的重载方法:

$('#parent').on('click', '.children', function (){});
您应该始终将事件处理程序附加到最接近的父级,以便事件侦听器影响的元素数量最少。

$('.className')。bind('click',function(){})
将事件处理程序附加到dom中的每个可用元素。。。事件委派也有一些问题,例如,它需要评估委派父级中发生的所有单击事件,而不是只侦听目标元素中的事件委派目标选择器


也就是说,如果有很多元素,我更喜欢活动授权。。。。但是更喜欢将处理程序附加到最直接的公共祖先元素,而不是将其绑定到
body
document

,因此此ON方法将仅在指定的父元素中使用委托,这是最优化的方法,如果我做对了,不是吗?@goose-正确。选择尽可能低的父级,然后将选择器作为第二个参数传递给它。