Javascript JQuery代码中使用的CSS类上事件侦听器的性能开销
如果我的标记如下所示:Javascript JQuery代码中使用的CSS类上事件侦听器的性能开销,javascript,jquery,event-delegation,Javascript,Jquery,Event Delegation,如果我的标记如下所示: <button id="button-1" class="nice"> <button id="button-2" class="nice"> <button id="button-3" class="nice"> 建立了多少个事件侦听器?1还是3 如果我有1000个按钮而不是3个,我应该使用事件委派吗 如果元素类在标记中包含大量元素,那么不在这些类上定义jQuery调用是否是性能方面的最佳选择 1) 3个事件侦听器都指向同一个函数
<button id="button-1" class="nice">
<button id="button-2" class="nice">
<button id="button-3" class="nice">
3) 是的,正如您所说的,使用jQuery中通过函数提供的事件委派。小心,太多。现场功能也会影响性能,所以考虑本地事件委派。 < P>完全同意!必须将事件侦听器添加到包含所有这些好元素的父元素中。这将大大提高性能
$()
函数返回一个数组,并且click()
应用于其中的所有元素我不认为事件委派与.live方法有任何关系,它确实有关系。live委托人监听文档中的冒泡事件。@SolutionYogi,jQuery的live事件是通过事件委托实现的。文档中说“live”方法是通过“事件委托”实现的。这并不意味着可以通过.live方法使用“事件委派”。事件委托是一个非常通用的概念,它本身就存在。甚至在jQuery中引入.live方法之前,您就可以使用事件委派了。我认为您在玩文字游戏。正如你在我的帖子中所看到的,我知道事件dele不需要使用.live就可以使用!我通常只写我自己的,这不太难。你能提供一个例子,说明你是如何判断点击了哪个子元素的吗。我很难理解,如果听者是家长,你怎么能解决这个问题。
$(".nice").click(function () {
// something happens
});