Этот вопрос тесно связан с вопросом переполнения стека " запуск события window.resize в Internet Explorer ".
Проблема: Я пытаюсь исправитьпроблема изменения размера в Internet Explorer 8. В настоящее время функция изменения размера вызывается неоднократно, в результате чего IE по существу блокируется - пользователь больше не может использовать кнопки, вызывающие действия JavaScript.
Предыдущая попытка (и):
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
события работали.
Кто-нибудь знает, как я могу удалить событие resize после его добавления или просто заставить IE перестать быть задержанным.(<- Дополнительные баллы, если вы можете сделать IE не запаздывающим.) </p>
Разрешение: Внутри функции scrollHandler
переменная не была объявлена с использованием var
префикс.Добавление вар заставило всех злых фей уйти.