事件委托和window与window.document的区别

5

我希望做事件委托并通过绑定到整个文档的事件处理程序捕获发生在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个回答

4
windowwindow.document之间有区别。 window与浏览器中可视部分相关,并且始终首先加载。 window.document是您的页面主体,在其中显示所有内容和DOM,包括直到滚动到它们才显示的所有部分。
您列出的事件都是用户触发的事件,并且始终会影响窗口的可视部分。 我想不到任何情况下您会收到例如在您的视口之外的单击事件。据我所知,您甚至无法生成未绑定到特定元素而绑定到屏幕上位置的事件。同样适用于keyupkeydown等事件。
回答您的问题,将事件绑定到windowwindow.document之间没有功能性差异。唯一不同的是函数调用内部的this属性。对我来说,将事件绑定到window.document比绑定到window的DOM更有意义。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接