IE中的事件会冒泡到窗口吗?

Gez*_*zim 2 javascript internet-explorer internet-explorer-8

我将一个简单的click事件绑定到window对象,但是在IE8中没有调用处理程序(适用于Chrome和FF):

$(window).click(function (e) {
  alert('Hello there! I\'m in the window.click hanlder!');
});
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况?

Gez*_*zim 5

似乎IE(测试IE8)没有将事件冒泡到window.

这是一个例子(http://jsfiddle.net/SZXrn/8/):

if (window.attachEvent) // IE
{
  window.attachEvent('onclick', function () {
      alert("Yay window obj was clicked! IE");
  });

  document.attachEvent('onclick', function () {
      alert("Yay document obj was clicked! IE");
  });
}
else if (window.addEventListener) // Other
{
  window.addEventListener('click', function () {
      alert("Yay window obj was clicked! Non-IE");
  });

  document.addEventListener('click', function () {
      alert("Yay document obj was clicked! Non-IE");
  });  
}
Run Code Online (Sandbox Code Playgroud)

所以,解决方案是绑定到document而不是window.