Javascript 在正文或文档上绑定事件?

Javascript 在正文或文档上绑定事件?,javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,有时用户在$('body')上绑定事件,有时在$(文档) 有什么理由选择一个而不是另一个吗?简短的回答很可能是,不,不是真的 有人这样做的原因应该始终是他需要在标记中全局捕获事件。由于标记应作为的直接同级,因此所有事件冒泡阶段将在此结束 <html> <body> <div> </div> 上的每个单击事件都会冒泡到以及(如果不是手动停止)。所以对于那个用例来说,它应该不会有任何区别。在速度上有一些

有时用户在
$('body')
上绑定事件,有时在
$(文档)


有什么理由选择一个而不是另一个吗?

简短的回答很可能是,不,不是真的

有人这样做的原因应该始终是他需要在标记中全局捕获事件。由于
标记应作为
的直接同级,因此所有事件冒泡阶段将在此结束

<html>
    <body>
         <div>
         </div>


上的每个单击事件都会冒泡到
以及
(如果不是手动停止)。所以对于那个用例来说,它应该不会有任何区别。

在速度上有一些区别,而不是其他。虽然有人已经完成了这项工作,所以我将向您指出链接


然而,与您的代码直接相关的是,有一个主要区别<代码>$(文档)。在('click',someAction)上将影响文档查看区域中的任何位置,而
$('body')。在('click',someAction')
可能不会像body具有独立的高度和宽度那样影响更多的区域。

对于我来说,主要有一个原因可以将事件绑定到
$(文档)
上,而不是绑定到
$('body')

无需等待domReady(文档在所有操作之前可用 (其他)


请参阅SpYk3HH提供的链接,$(文档)选择器非常快速。我认为这与我的问题无关,因为区别在于
文档。正文
正文
不是
文档
正文
。文档是正文,但具有对象属性。它们基本上都是一样的,只是文档给了你一些属性来操作,这些属性会影响你的整个页面,其中as body被当作其他html元素,所以根据你的解释,
$('body')
应该比
$(文档)
快,但对我来说,它似乎与你的相反,body是Document的一个元素,但是,我的观点是,实际上,对body/$(“body”)所做的任何操作,都可以对Document/Document.body/$(Document.children)(“body”)所做的操作,并期望得到相同的结果,两者之间的差异是处理时间的毫秒。
<html>
    <body>
         <div>
         </div>