Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 具有jQuery宽度的IE8_Javascript_Jquery - Fatal编程技术网

Javascript 具有jQuery宽度的IE8

Javascript 具有jQuery宽度的IE8,javascript,jquery,Javascript,Jquery,我正在尝试在div上动态设置一个宽度。这在Safari、Chrome和Firefox上是正确的,但在IE8中不是。这是使用jqueryui来实现slider函数。以下是我目前的代码: var ourStoryPosts = $(".ourStory .grid_12mod").children(); var ourStoryLength = ourStoryPosts.length; var ourStoryWidth = $(ourStoryPosts[2]).outerWidth(true)

我正在尝试在div上动态设置一个宽度。这在Safari、Chrome和Firefox上是正确的,但在IE8中不是。这是使用jqueryui来实现slider函数。以下是我目前的代码:

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;
使用jQuery 1.9方法
children()
在Safari、Chrome和Firefox中记录
5
元素的结果,而IE8则记录
1
。使用
elem
对象的本机
children
属性修复了问题,并为所有浏览器记录了
5


之所以记录
0
,是因为当
5
存在时,IE8只返回
1
子元素,因此,当IE8只找到
1
元素时,数学运算被关闭,IE8试图找到第二个数组元素。

尝试在变量上使用parseFloat,并在控制台上记录每一行,以查看发生了什么wrong@CR41G14
parseFloat
没有成功。是否建议使用css属性而不是宽度?它们应该都有相同的结果,除非其他css父规则禁止。当您对变量ourStoryWrapperWidth执行console.log时,会出现什么?@mcpDESIGNS对,我应该很清楚。对值进行硬编码可以很好地工作。它记录了符合我需要的
1275
。所以,这个值是正确的。在parent或max width属性上是否有其他css否决了IE8优先考虑的内容?正如我在上面的评论中所说,硬编码这些值很好。输入数字
1275
可以使它正常工作。当您使用IE8开发工具F12检查元素时,建议的代码是否将内联css“宽度”放在元素上?是的。宽度属性是内联的。但是div没有调整大小?