Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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
ie9 jquery div width计算返回两个不同的结果_Jquery_Internet Explorer 9 - Fatal编程技术网

ie9 jquery div width计算返回两个不同的结果

ie9 jquery div width计算返回两个不同的结果,jquery,internet-explorer-9,Jquery,Internet Explorer 9,我有以下代码将剩余宽度重新分配给所有div: var menuItems = $('.picNav .overlay .item, .picNav .overlay .home'); var parentWidth = 980; var totalItemWidth = 0; var restWidth; var moduloWidth; var resultWidth; menuItems.css({ width: "" }); for (var i = 0; i < menuIt

我有以下代码将剩余宽度重新分配给所有div:

var menuItems = $('.picNav .overlay .item, .picNav .overlay .home');

var parentWidth = 980;
var totalItemWidth = 0;
var restWidth;
var moduloWidth;
var resultWidth;

menuItems.css({ width: "" });

for (var i = 0; i < menuItems.length; i++)
{
    totalItemWidth += menuItems[i].offsetWidth;
}

restWidth = parentWidth - totalItemWidth;
moduloWidth = restWidth % menuItems.length;
restWidth -= moduloWidth;

resultWidth = restWidth / menuItems.length;

for (i = 0; i < menuItems.length; i++)
{
    $(menuItems[i]).width($(menuItems[i]).width() + resultWidth);
}
$(menuItems[0]).width($(menuItems[0]).width() + moduloWidth);
var menuItems=$('.picNav.overlay.item,.picNav.overlay.home');
var-parentWidth=980;
var totalItemWidth=0;
宽度;
var模宽;
var结果;
css({宽度:});
对于(变量i=0;i
此代码段在所有当前浏览器中都能正常工作。 不过,在使用IE9进行了一些测试之后,我遇到了一个问题,即有时最后一个元素会被放到下一行。 当我调试javascript时,它会计算totalItemWidth的正确数量(在我的例子中是717px),如果我不调试(或者跳过它计算totalItemWidth的部分),它有时会得到658px

我不确定这是否是一个加载问题,或者是否还有其他问题

如果有人能给我一点启示,我会很高兴的

干杯
Carlo

您不能像在
.CSS({width:“})中那样将CSS属性设置为
。使用
width:“auto”
或特定的
%
px

菜单中有图像吗?没有,这是一个带有jquery clickhey mooseman的普通div,感谢您的回复。我将属性设置为“”的那一行只是用来重置宽度的,如果我把它拿走,它不会改变任何东西。