【问题标题】:Javascript and jquery resize event not working in IE Internet ExplorerJavascript 和 jquery 调整大小事件在 IE Internet Explorer 中不起作用
【发布时间】: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


【解决方案1】:
$(window).resize(function(){resize1()});

function resize1(){

var w = $(window).height();
var h = $('.header').height();
var ht = w-h;

$('#div').height(ht);

}

【讨论】:

    【解决方案2】:

    IE 的哪个版本? 8.0 及更早版本获取不带px 的值 试试document.getElementById('div').style.height=ht;

    【讨论】:

    • 所以我认为这不是问题,因为当我调用函数“onload”时,它工作正常,只是在使用 onresize 事件时不会触发。因此,当我加载页面时,div 的大小是正确的,但是当我调整大小时,它不会再次触发该功能。所以这似乎是事件 oneresize 没有被 IE 识别。 ??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 2013-04-09
    • 1970-01-01
    相关资源
    最近更新 更多