我想做事件委托并通过绑定到整个文档的事件处理程序捕获DOM对象上发生的所有事件.将事件绑定到窗口之间是否有任何区别,如:
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,false);
事件是某种事件,如’click’,’mouSEOver’等.
最佳答案
window和window.document之间有区别.窗口与浏览器的可视部分相关,并且始终首先加载. window.document是页面的主体,其中显示了所有内容和DOM,并包括例如在滚动到它们之前隐藏的所有部分都会显示它们.
您列出的事件是用户触发的事件,并且始终会影响窗口的可查看端口.我想不出你会收到的任何情况,例如:一个位于视口外部的点击事件.据我所知,你甚至无法生成一个类似于未绑定到特定元素而是绑定到屏幕上某个位置的事件. keyup,keydown,…事件也是如此.
要回答您的问题,将事件绑定到window或window.document之间没有功能差异.唯一不同的是函数调用中的this属性.对我而言,将事件绑定到window.document DOM而不是窗口更有意义.