有时用户将事件绑定到$('body')
有时在$(document)
$(document).on('click', someAction);
$('body').on('click', someAction);
有什么理由比另一个更喜欢一个吗?
有时用户将事件绑定到$('body')
有时在$(document)
$(document).on('click', someAction);
$('body').on('click', someAction);
有什么理由比另一个更喜欢一个吗?
$(document)
对我来说,将事件绑定到而不是绑定事件主要有一个原因$('body')
:
无需等待domReady(文档在其他一切之前可用)
简短的回答很可能是,不,不是真的。
有人这样做的原因应该始终是他需要在他的标记中全局捕获事件。由于<body>
标签应该作为 的直接兄弟<html>
,因此所有事件冒泡阶段都将在此结束。
<html>
<body>
<div>
</div>
每个点击事件<div>
都会冒泡<body>
(<html>
如果没有手动停止)。所以对于那个用例,它不应该有任何区别。
速度有一些差异,其他没什么。有人已经完成了这项工作,所以我将指向您的链接。
但是,与那里的代码直接相关,有一个主要区别。$(document).on('click', someAction);
将影响文档查看区域的任何位置,而$('body').on('click', someAction);
可能不会影响与 body 可以具有独立高度和宽度的区域一样多的区域。