Javascript 在IE8中调整窗口大小时,DIV offsetWidth/Width/innerWidth返回零
我的页面中有很多元素。请考虑以下事项Javascript 在IE8中调整窗口大小时,DIV offsetWidth/Width/innerWidth返回零,javascript,jquery,html,css,internet-explorer,Javascript,Jquery,Html,Css,Internet Explorer,我的页面中有很多元素。请考虑以下事项 <div id="root"> .................. <div id="child1"> ............. </div> <div id="child2"> ............... </div> </div> 它在IE8浏览器中返回宽度为“0”,但在IE9/
<div id="root">
..................
<div id="child1">
.............
</div>
<div id="child2">
...............
</div>
</div>
它在IE8浏览器中返回宽度为“0”,但在IE9/其他现代浏览器中返回一些宽度(960px)
我不知道这个问题的确切原因是什么
为什么调整窗口大小时返回零宽度。
谢谢
湿婆
这在IE8中有效。请参见控制台(布局为f***up)
可能是浏览器呈现问题,请尝试使用timeout进行测试您粘贴到此处的代码中的#root div未关闭。我认为,这是由于元素显示/定位CSS属性造成的。@Ishan我没有根元素的CSS。请您进一步解释一下好吗?哪个css属性会抛出这个错误这是由于元素显示/定位css属性引起的。你在这里看到一些css吗?你是如何在IE8中运行JSFIDLE的?我无法在IE8浏览器中运行它(在IE8 JSFIDLE无法正常工作的情况下,这里我只更新@enguerranws fiddle with some alert(),因此如果您更改窗口大小,fiddle会提醒您此事件。)您没有收到警报吗?还是警报0?如果你没有收到警报,可能你没有在IE中激活JS。
$(window).resize( function () {
repaint();
});
function repaint(){
//width returns "0" in IE8 browser and other browsers working fine
var width=$("#root").width() || $("#root").innerWidth() -> returns zero value in IE8
}
$(window).resize( function () {
repaint();
});
function repaint(){
//width returns "0" in IE8 browser and other browsers working fine
var width=$("#root").width();
console.log(width);
}