jQuery .live()如何工作?
我在考虑表现
.click()
vs .live("click")
这让我想知道.live是如何运作的。
它是否监视DOM更改以及何时检测到DOM中的更改它只是附加事件然后,它是否使用某种计时器(我不这么认为,但如果这样做非常重要,计时器会让我感到难过人)
live
将click
事件绑定到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添加元素并希望将单击处理程序附加到它们,则必须使用live
或delegate
但如果您不是简单地使用click