我想进行事件委派,并通过绑定到整个文档的事件处理程序捕获DOM对象上发生的所有事件。将事件绑定到window
之间有什么区别,如:
window.addEventListener(event, function(e){
var obj = e.target;
... // if `obj` is a certain kind of object, then do something
}, false);
和window.document
如下所示?
window.document.addEventListener(event, function(e){
var obj = e.target;
... // if `obj` is a certain kind of object, then do something
}, false);
event
是某种类型的事件,例如'click'
,'mouseover'
等。
答案 0 :(得分:4)
window
和window.document
之间存在差异。 window
与浏览器的可查看部分有关,并且始终首先加载。 window.document
是您的网页正文,其中显示所有内容和DOM,包括例如在滚动到它们之前隐藏的所有部分都会显示它们。
您列出的事件是用户触发的事件,并且始终会影响窗口的可查看端口。我无法想到你会收到的任何情况,例如:一个位于视口外部的点击事件。据我所知,你甚至无法生成一个类似于未绑定到特定元素而是绑定到屏幕上某个位置的事件。同样适用于keyup
,keydown
,... events。
要回答您的问题,将您的活动绑定到window
或window.document
之间没有功能差异。唯一不同的是函数调用中的this
属性。对我来说,将事件绑定到window.document
DOM而不是window
更有意义。