2011-11-24 57 views
2

我結合一個簡單的點擊事件到window對象,但處理程序不會被調用在IE8(適用於Chrome和FF):IE中的事件是否會觸發窗口?

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

任何人爲什麼會這樣?

回答

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"); 
    }); 
} 

因此,解決方案是結合到document代替window

相關問題