让我们考虑在整个HTML文档中捕获mousemove
的问题。
我知道可以附加事件监听器的四个对象:
window
,document
,document.body
,document.documentElement
经过简单的测试,在我看来,附加到它们中的任何一个都具有相同的效果。
$(window).on('mousemove', function(){console.log(1)})
我想知道是否有任何我不知道的差异(性能,兼容性?)
答案 0 :(得分:4)
将事件绑定到document.body
对象有两个潜在的问题:
有些浏览器在页面中的内容开始被解析之前不允许访问正文对象,因此直接在头部绑定事件不会起作用。您需要从load
或ready
事件或正文中的代码绑定它。
在符合标准的模式(HTML 4,XHTML,HTML5)中,body元素不会自动覆盖整个窗口。它只会包含内容所需的大小,如果它有一个未被body元素覆盖的边距。
此外,如果页面包含框架,那么这不会起作用。在这种情况下,请按照here解释的步骤进行操作。