Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当jquery.delegate调用事件处理程序时?_Javascript_Jquery_Event Handling - Fatal编程技术网

Javascript 当jquery.delegate调用事件处理程序时?

Javascript 当jquery.delegate调用事件处理程序时?,javascript,jquery,event-handling,Javascript,Jquery,Event Handling,最近,我经常使用.delegate和.live。我想在事件捕获方面,它们有着细微的区别。 当使用live进行链接点击时,比如$('a')。live(“click”…),以图像作为html内容的链接,最终由点击处理程序将目标作为图像而不是链接。 而对于授权,它似乎是作为目标传递的链接 这里的陷阱是什么 另外,.live和.delegate之间的主要区别是,.delegate()使用上下文。换句话说,.delegate()实际上是.live()的包装器,但它只监视给定的根节点,而不是监视文档根节点中

最近,我经常使用.delegate和.live。我想在事件捕获方面,它们有着细微的区别。 当使用live进行链接点击时,比如$('a')。live(“click”…),以图像作为html内容的链接,最终由点击处理程序将目标作为图像而不是链接。 而对于授权,它似乎是作为目标传递的链接

这里的陷阱是什么


另外,
.live
.delegate
之间的主要区别是,
.delegate()
使用
上下文
。换句话说,
.delegate()
实际上是
.live()的包装器
,但它只监视给定的根节点,而不是监视文档根节点中的冒泡事件

比如说

$('a').live('click', function() {
});
将创建一个附加到您的
文档.body
的事件处理程序。这将绝对捕获在您的站点上发生的所有
锚定
-单击

$('#someDiv').delegate('a', 'click', function() {
});
将仅“监视”来自
#someDiv
的所有子节点锚

.live()
委派的事件不太可能有另一个目标。
.live()
.delegate()
都将事件对象传递到处理程序中。这应该没有任何区别,
事件.target
应该始终是调用节点

参考号: