jQuery中live()和ready()的区别是什么?

4

live()ready()有什么确切的区别?


编辑:发现die()live()的相反。

3个回答

11

.ready() 允许您注册一个回调函数,当DOM准备就绪时触发 - 这类似于使用 window.onload 但更早触发(而且您可以注册多个回调函数)。

.live() 允许您基于选择器注册一系列事件的回调函数,它会不断监视DOM并将自己注册到新添加的节点上。


谢谢,那么当DOM再次被操纵时,ready()不会被再次触发吗? - powtac
1
@powtac,不是的。只有在DOM最初加载时。 - Sixten Otto

1

live 用于将事件附加到当前选择器和所有将来匹配的选择器。

ready 将一个函数绑定到当 DOM 就绪以进行遍历和操作时执行。


1
“直播不支持所有事件”可能是主要原因。 - FinnNk
live() 不支持哪些元素?document? - powtac
我认为你没有正确考虑这个问题。你需要使用ready来知道DOM何时准备好进行操作。你的live()用法将在ready调用内部。它们并不是真正可比较的。http://docs.jquery.com/Events/live列出了所有支持的元素。 - brad
目前live()不支持submit和change,尽管它们在1.4路线图中。 - FinnNk

1

ready() 在 DOM 加载完成且可以被遍历和操作时会触发一次。基本上是取代了旧版本可靠的 window 上的 onload 事件(类似但不完全相同)

使用 live() 方法,您可以指定一个选择器,jQuery 会将您指定的第二个参数函数附加到所有匹配当前和未来元素(动态添加到 DOM 中)上,并为指定的第一个参数事件进行绑定


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接