IE 8中的jQuery .width()问题

时间:2013-05-15 11:43:14

标签: jquery width

我在使用width(), outerWidth(), innerWidth()

在jQuery中获取容器大小时遇到​​了重大问题

如果你load up this URL in IE8它给我一个超过30,000的宽度数字,而其他所有浏览器都在1100左右,这是正确的值。

这会导致滑块出现问题,因为此宽度值用于针对单个滑块调整进行各种其他计算。

我已经离开警报,您可以看到宽度离散度,并且在带有id容器的div上调用它。

特定的jQuery调用是(不使用其他插件引起的冲突):

alert(jQuery_1_6_2('#container').width());

我看过其他一些提及outerWidth()innerWidth()的帖子,但这些帖子也没有给我正确的答案。

我相信它可能与IE有关,可能会认为所有滑块都在一条线上,但这些只有600px宽,所以我只得到一个值大约3,600px而不是30,000px +

我也不能使用固定宽度来解决我的问题,因为它具有响应性。我能达到的最好效果是将最大宽度值放在#container上,但我仍然没有得到宽度值的确切值。

1 个答案:

答案 0 :(得分:5)

尝试使用$(window).load(function(){...});而不是文档就绪。

如果仍然无法工作,那么这可以工作,使用计时器让DOM完全呈现:

jQuery_1_6_2(document).ready(function () {
    setTimeout(function () {
        alert(jQuery_1_6_2('#container').width());

        jQuery_1_6_2('#accordion-wrapper').raccordion({
            speed: 1000,
            sliderWidth: jQuery_1_6_2('#container').width(),
            sliderHeight: 360,
            autoCollapse: false
        });
    }, 100);
});