Javascript 当jquery.delegate调用事件处理程序时?
最近,我经常使用.delegate和.live。我想在事件捕获方面,它们有着细微的区别。 当使用live进行链接点击时,比如$('a')。live(“click”…),以图像作为html内容的链接,最终由点击处理程序将目标作为图像而不是链接。 而对于授权,它似乎是作为目标传递的链接 这里的陷阱是什么Javascript 当jquery.delegate调用事件处理程序时?,javascript,jquery,event-handling,Javascript,Jquery,Event Handling,最近,我经常使用.delegate和.live。我想在事件捕获方面,它们有着细微的区别。 当使用live进行链接点击时,比如$('a')。live(“click”…),以图像作为html内容的链接,最终由点击处理程序将目标作为图像而不是链接。 而对于授权,它似乎是作为目标传递的链接 这里的陷阱是什么 另外,.live和.delegate之间的主要区别是,.delegate()使用上下文。换句话说,.delegate()实际上是.live()的包装器,但它只监视给定的根节点,而不是监视文档根节点中
另外,
.live
和.delegate
之间的主要区别是,.delegate()
使用上下文
。换句话说,.delegate()
实际上是.live()的包装器
,但它只监视给定的根节点,而不是监视文档根节点中的冒泡事件
比如说
$('a').live('click', function() {
});
将创建一个附加到您的文档.body
的事件处理程序。这将绝对捕获在您的站点上发生的所有锚定
-单击
$('#someDiv').delegate('a', 'click', function() {
});
将仅“监视”来自#someDiv
的所有子节点锚
.live()
委派的事件不太可能有另一个目标。.live()
和.delegate()
都将事件对象传递到处理程序中。这应该没有任何区别,事件.target
应该始终是调用节点
参考号: