jQuery 的 .live('click', fn) 和 .click(fn) 之间的性能差异

IT技术 javascript jquery events
2021-02-19 08:19:31

我喜欢 jQuery 1.3 中的新直播活动。我的问题是这次活动的表现。我知道使用 live 优于 click/bind('click') 的优点,但是在 click/bind('click') 上使用它是否会影响性能?

如果没有,你为什么要使用 click 或 bind('click') ?

2个回答

如果没有,你为什么要使用 click 或 bind('click') ?

因为$.live()有一些明显的缺点

  • 实时事件不会以传统方式冒泡,并且无法使用 stopPropagation (在 jquery 1.4.4 中更改)或 stopImmediatePropagation 停止。例如,以两个点击事件为例——一个绑定到“li”,另一个绑定到“li a”。如果在内部锚点上发生点击,则将触发两个事件。这是因为当 $("li").bind("click", fn); 绑定您实际上是在说“每当 LI 元素上或 LI 元素内发生单击事件时,都会触发此单击事件。” 要停止对实时事件的进一步处理,fn 必须返回 false。
  • 实时事件目前仅在针对选择器使用时才有效。例如,这会起作用: $("li a").live(...) 但这不会: $("a", someElement).live(...) 这也不会: $("a ").parent().live(...).
live() 从 1.4.4 开始支持 stopProgation
2021-05-03 08:19:31
@Kevin 请记住,在我写这篇文章的时候,这个问题和答案都已经超过三年了。
2021-05-04 08:19:31
.live() 也无法捕获某些事件
2021-05-17 08:19:31

看到这个

至于为什么您会使用 click 或 bind 而不是 live ,答案是因为您不需要额外的功能。