此問題與堆棧溢出問題「window.resize event firing in Internet Explorer」密切相關。Javascript - 刪除窗口「調整大小」偵聽器
的問題: 我試圖在Internet Explorer 8來修復調整大小的問題目前,調整大小功能被稱爲多次造成IE基本上鎖定 - 用戶可以不再使用調用JavaScript動作按鈕。
以前的嘗試(S):
var resizeTimeout;
var resizeHandler = function() {
clearTimeout(resizeTimeout);
//$(window).unbind('resize', resizeHandler);
//window.removeEventListener('resize');
window.removeEventListener('resize', resizeHandler, false);
scrollHandler();
setTimeout("$(window).resize(resizeHandler);", 100);
return true;
}
//$(window).resize(resizeHandler);
window.addEventListener('resize', resizeHandler, false);
問題:看來,window
無法實現addEventListener
或removeEventListener
和解除綁定的jQuery不會繼續發飆了停止IE瀏覽器。它可以在所有其他瀏覽器中正常工作。
希望的行爲:這裏的目標是真的讓IE停止重複執行代碼,所以其他功能如onclick
事件工作。
有沒有人知道我可以刪除調整大小事件後,它已被添加或只是使IE停止被阻止。 (< - 如果加分就可以使IE不受到阻礙。)
分辨率:裏面的scrollHandler
功能使用var
前綴的變量未聲明的。加入var使所有邪惡的仙女都消失了。
我正在開發的應用程序,我沒有開發,它在頁面移動時重新定位彈出窗口。因此,調整大小的結果必須發生。但是,我添加了一個計數器,可以打印resize事件被調用的次數,並且只會被調用大約3次。原來scrollHandler函數內部是一個變量,前面沒有「var」。定義變量「var obj」解決了這個問題。 – teynon 2012-03-14 18:15:01