jQuery live()事件处理程序的性能

时间:2011-06-17 07:41:23

标签: jquery runtime

我正在考虑使用live()将事件处理程序绑定到我尚未插入DOM的函数。然而,这看起来很昂贵 - 必须在插入元素时或任何时候执行“click”元素时进行运行时检查,例如,查看是否应该调用处理程序。

在实践中这是值得担心的事情,还是现在Javascript如此之快以至于不值得关注?

live()功能的参考页面:http://api.jquery.com/live/

2 个答案:

答案 0 :(得分:6)

不,.live()使用事件冒泡来做它的事情。它只是附加到根元素并对通过DOM树冒泡的事件做出反应。它一直在检查DOM元素。

从您链接的页面:

  

.live()方法能够通过使用事件委托来影响尚未添加到DOM的元素:绑定到祖先元素的处理程序负责在其后代上触发的事件。传递给.live()的处理程序从不绑定到元素;相反,.live()将一个特殊的处理程序绑定到DOM树的根目录。

在更详细的内容中继续阅读。

答案 1 :(得分:2)

最好不要使用delegate(),它不会在文档上附加处理程序,而是在指定的父元素上附加。这意味着更少的负载。建议在大多数情况下使用它而不是.live()

About the differences on Nettuts+