Chi*_*e G 50 javascript jquery live
我在我的Web应用程序中使用jQuery.在阅读其文档时,我读到了live()和delegate().虽然他们已经解释了这两种方法,但我不明白它们之间的确切区别.还不确定哪种方法在哪种情况下是理想的.
请帮助我清楚地了解这些方法.
谢谢
Nic*_*ver 57
.live()要求你立即运行选择器,除非你使用结果它非常浪费.此处的事件处理程序已附加到document,因此必须检查来自任何元素冒泡的该类型的所有事件.这是一个用法示例:
$(".myClass").live("click", function() { alert("Hi"); });
Run Code Online (Sandbox Code Playgroud)
请注意,声明$(".myClass")跑了选择找到与该类的所有元素,即使我们不关心他们,我们所想要的是字符串".myClass"匹配后,当click事件冒泡到document.
.delegate()实际上是在.live()内部使用,但有上下文.选择器不是立即运行的,所以它已经更有效了,并且它没有附加到document(虽然它可以)它更加本地化...而你不关心的其他元素树中的所有其他事件都不会冒泡时检查...再次更有效率.这是一个用法示例:
$("#myTable").delegate("td", "click", function() { alert("Hi"); });
Run Code Online (Sandbox Code Playgroud)
现在发生了什么?我们跑了$("#myTable")去重视(当然不是越贵的元素document,但我们使用的结果.然后,我们重视的事件处理程序到(或那些在其他情况下)的元素,只有clicks从内该元素对被检查"td"选择什么时候发生,而不是像所有地方一样.live()(因为一切都在里面document).
| 归档时间: |
|
| 查看次数: |
4896 次 |
| 最近记录: |