我正在尝试在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
。为什么这不能正常工作?
答案 0 :(得分:0)
您可以尝试设置css属性宽度吗?
$(".ourStory .grid_12mod").css('width', ourStoryWrapperWidth.toString() + 'px');
答案 1 :(得分:0)
不确定实际问题是什么,但使用原生JS为我修复了它:
var elem = document.querySelector(".grid_12mod");
var ourStoryChildren = elem.children;
使用children()
的jQuery 1.9方法记录了Safari,Chrome和Firefox中5
元素的结果,而IE8记录了1
。使用children
对象的原生elem
属性修复了问题,并为所有浏览器记录了5
。
这是记录0
的原因是因为当1
存在时,IE8仅返回5
子元素,因此数学已关闭且IE8正在尝试查找第二个数组元素当它只找到1
元素时。