jQuery .live()如何工作?

我在考虑表现

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

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

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

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

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

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

这一切都在jQuery的文档中解释过

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

从.live()的jQuery手册:

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

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

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