繁体   English   中英

jQuery宽度的IE8

[英]IE8 with jQuery width

我正在尝试在div上动态设置宽度。 Safari,Chrome和Firefox可以正常使用,但IE8不能。 这是使用jQuery UI的滑块功能。 到目前为止,这是我的代码:

var ourStoryPosts = $(".ourStory .grid_12mod").children();
var ourStoryLength = ourStoryPosts.length;
var ourStoryWidth = $(ourStoryPosts[2]).outerWidth(true);
var ourStoryWrapperWidth = ourStoryLength * ourStoryWidth;
var maxSlider = ourStoryWrapperWidth - 1020;

$(".ourStory .grid_12mod").width(ourStoryWrapperWidth);

$(".ourStorySlider").slider({ 
    step: 1, 
    max: maxSlider,
    slide: function( event, ui) {
        $(".ourStory").css({
            "left" : -ui.value
        });
    }
});

如您所见,我正在使用变量来设置这些值。 width()方法无法正常工作。

我尝试使用String()构造函数显式转换为字符串。 我也尝试在表达式的末尾使用+ "px" 每次,div被设置为0px 为什么这不能正常工作?

您可以尝试设置CSS属性的宽度吗?

$(".ourStory .grid_12mod").css('width', ourStoryWrapperWidth.toString() + 'px');

不知道实际的问题是什么,但是使用本机JS为我解决了这个问题:

var elem = document.querySelector(".grid_12mod");
var ourStoryChildren = elem.children;

使用children()的jQuery 1.9方法,在Safari,Chrome和Firefox中记录了5元素的结果,而IE8记录了1 使用elem对象的native children属性可以解决该问题,并为所有浏览器记录5

之所以将其记录为0是因为IE8仅返回1个子元素(当存在5个子元素时),因此关闭了数学运算,并且IE8在仅找到1个元素时试图查找第二个数组元素。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM