【发布时间】:2011-12-02 21:13:08
【问题描述】:
我不知道我做错了什么,但我的 onresize 在 Firefox 中运行良好,但在 IE 中无法运行。
$(window).bind('resize', function () {resize1()});
window.onresize= function(){resize1()};
body.onresize= function(){resize1()};
$(window).resize(function(){resize1()});
我已经尝试了所有这四种方法,并且在 ff 中都可以正常工作,但它们都不能在 IE 中工作。我究竟做错了什么。
我的 resize1 函数如下所示:
function resize1(){
var w = $(window).height();
var h = $('.header').height();
var ht = (w-h);
document.getElementById('div').style.height=ht +"px";
}
我的最终目标是当有人通过拖动角来调整窗口大小时让 div 调整大小。再次在 FF 中工作正常,但在 IE 中不工作。感谢您的帮助。
当我使用“onload”调用该函数时,它工作正常,只是在使用 onresize 事件时不会触发。因此,当我加载页面时,div 的大小是正确的,但是当我调整大小时,它不会再次触发该功能。所以这似乎是事件 oneresize 没有被 IE 识别。 ??
【问题讨论】:
-
在 IE7 及以下的 window.resize 中,即使 div 也被调整大小,并且根据您的 IE 风格,有一个安全规则会阻止在 window.resize 之后发生调整大小。我不知道这是否在 IE8+ 中得到解决,但根据您的设置,IE8 的行为会像 IE7,因此它可能仍会影响您。您可以查看:ecmascript.stchur.com/2006/08/20/beating-the-ie-resize-bug/…
-
发现了我的问题。我在页面底部调用了所有这些函数,因为我必须等待 div 加载才能调用这些元素上的函数。但是当我使用调整大小事件时,它并没有触发事件(我仍然不确定为什么,但至少我找到了修复)。我所做的只是将调整大小功能剪切并粘贴到我的标题中,它工作正常。所以我想我所要做的就是在我身体下方的标题中调用 on resize 函数。感谢所有帮助过的人。
标签: javascript jquery events resize