[英]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.