有时用户会绑定$('body')
上的事件,有时会绑定$(document)
$(document).on('click', someAction);
$('body').on('click', someAction);
是否有某种理由喜欢彼此?
答案 0 :(得分:7)
对我而言,主要有一个理由将事件绑定在$(document)
而不是$('body')
:
无需等待 domReady (文档在所有内容之前都可用 别的)
答案 1 :(得分:6)
简短回答很可能是,不,不是真的。
某人这样做的原因应该始终是他需要在他的标记中全局捕捉事件。由于<body>
标记应该作为<html>
的直接兄弟,所有冒泡阶段的事件都将在那里结束。
<html>
<body>
<div>
</div>
<div>
上的每次点击活动都会冒出<body>
以及<html>
(如果没有手动停止)。所以对于那个用例,它应该没有任何区别。
答案 2 :(得分:2)
速度有所不同,其他方面并不多。有人已经完成了这项工作,所以我只想指出你的链接。
然而,与您的代码直接相关,有一个主要区别。 $(document).on('click', someAction);
会影响文档查看区域的任何位置,而$('body').on('click', someAction);
可能不会影响区域,因为正文可以有独立的高度和宽度。