jQuery .live()如何工作?

时间:2011-07-23 14:38:42

标签: jquery

我在考虑有关

的表现

.click() vs .live("click")

这让我想知道.live是如何运作的。

它是否监视DOM更改以及何时检测到DOM中的更改它只是附加事件然后,它是否使用某种计时器(我不这么认为,但如果这样做非常重要,计时器会我是一个伤心的人)

5 个答案:

答案 0 :(得分:12)

liveclick事件绑定到DOM的document元素。当浏览器事件通过DOM树冒泡时,会触发任何匹配元素的click事件。

这是一篇很好的文章,解释了这一切。

http://www.alfajango.com/blog/the-difference-between-jquerys-bind-live-and-delegate/

答案 1 :(得分:8)

答案 2 :(得分:2)

即使dom发生变化,.live也不会将事件附加到dom中的每个元素。它将事件侦听到根元素,如正文或附加了live的任何容器。一旦触发了内部级别元素中的事件,它就会检查目标并与实时中指定的选择器匹配,如果匹配,则会引发该事件。

答案 3 :(得分:2)

来自.live()上的jQuery手册:

  

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

如您所见,没有涉及计时器。

答案 4 :(得分:0)

如果您要动态地向DOM添加元素并希望将点击处理程序附加到它们,则必须使用livedelegate,但如果您不是简单地使用click