事件委托和窗口与window.document

时间:2014-09-25 10:15:47

标签: javascript html events event-delegation

我想进行事件委派,并通过绑定到整个文档的事件处理程序捕获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'等。

1 个答案:

答案 0 :(得分:4)

windowwindow.document之间存在差异。 window与浏览器的可查看部分有关,并且始终首先加载。 window.document是您的网页正文,其中显示所有内容和DOM,包括例如在滚动到它们之前隐藏的所有部分都会显示它们。

您列出的事件是用户触发的事件,并且始终会影响窗口的可查看端口。我无法想到你会收到的任何情况,例如:一个位于视口外部的点击事件。据我所知,你甚至无法生成一个类似于未绑定到特定元素而是绑定到屏幕上某个位置的事件。同样适用于keyupkeydown,... events。

要回答您的问题,将您的活动绑定到windowwindow.document之间没有功能差异。唯一不同的是函数调用中的this属性。对我来说,将事件绑定到window.document DOM而不是window更有意义。