jQuery:$(window).resize()无效

5

我试图在页面加载时手动触发$(window).resize()方法。 我创建了一个函数来使一个div元素在页面上垂直和水平居中。

$(window).resize(function(){
    $('.pagecentered').css({
        position: 'absolute',
        left: ($(window).width() - $('.pagecentered').outerWidth())/2,
        top: ($(window).height() - $('.pagecentered').outerHeight())/2
    });
});

这个函数调用之后,我执行
$(window).resize();

手动触发resize()事件。

很遗憾,这不起作用。重新加载页面后,div不像预期的那样居中。 如果我调整浏览器窗口大小,div元素会居中,但它不会在页面加载时触发。

有没有什么办法解决这个问题? 我使用的是Chrome 27.0.1453.116 m(目前最新版本)和JQuery 1.10.2


4
代码是否被包裹在 document ready 中? - r043v
1
啊,好的,那就是问题所在了。我对 JavaScript 还很新手^^ 谢谢 r043v。 - TorbenJ
1个回答

2
您需要使用 trigger 方法: $(window).trigger('resize');

7
这并非必需,而是一种风格问题。文档已经很明确了 - 在没有参数的情况下使用 resize(),它是 .trigger('resize') 的快捷方式。 - nrodic
1
为什么这是最佳答案? - Kad
这有点令人困惑。我猜其他答案可能已经被删除了?我的先前评论甚至对我自己来说都没有意义! - Kad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接