【发布时间】:2012-03-31 05:12:41
【问题描述】:
这个问题与堆栈溢出问题“window.resize event firing in Internet Explorer”密切相关。
问题: 我正在尝试修复 Internet Explorer 8 中的调整大小问题。目前,resize 函数被反复调用,导致 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 事件等其他函数正常工作。
有谁知道我如何在添加调整大小事件后删除它,或者干脆让 IE 停止延迟。 (
解决方案:在scrollHandler 函数内部,未使用var 前缀声明变量。添加 var 让所有邪恶的精灵都消失了。
【问题讨论】:
标签: javascript internet-explorer resize dom-events