我注意到当我们想要引用整个页面时,特别是在绑定事件时,会使用$(document)
和$('body')
。
$(document).on('click', '.myElement', function);
和
$('body').on('click', '.myElement', function);
性能方面的区别是什么?如果$(document)
将事件绑定到整个超文本标记语言文档,为什么我们不使用$('body')
来绑定像click
这样的事件呢?
注意,这个问题不是指ready函数的使用,而是.on()
或.delegate()
绑定的使用。
发布于 2013-04-16 13:24:18
$('body')
以<body>
html元素为目标,而$(document)
以整个html文档为目标。这意味着如果要在<head>
元素中引用某些内容,则需要从$(document)
访问,因为这是一条直接路径。
出于您的目的,根据您向我们展示的内容,它们应该是等效的。
发布于 2013-04-16 13:39:49
Body
是document
的子类。正因为如此,事件将首先到达body
,然后才被冒泡到document
。
发布于 2013-04-16 13:26:29
这肯定是不同的,因为虽然在使用jQuery/JavaScript时,您可以使用这两个组件完成工作,但是不能通过css设置文档样式。你的身体可以有一个指定的高度。尝试给你的身体增加一个200px的高度和一个你选择的背景颜色(这样,你就可以看到区别了)。然后将绑定添加到文档和正文(两个事件的不同操作)。
这个实验可能对你有用。
https://stackoverflow.com/questions/16029340
复制相似问题