我在IE8中获得div宽度时遇到问题,在FF和chrome中都很好。 我在IE中的宽度为0,在FF和Chrome中为1366。
$('.fs-pic').width();
HTML:
<div class="fs-pic"> <img id="full" src=""/></div>
我把宽度视为fs-pic类的自动。
以上行在IE中返回0。 IE有替代品吗? 请帮忙。
答案 0 :(得分:0)
$(document).ready()
中了吗?
尝试在$(window).load()
移动它我认为它是因为图像(即创建容器的宽度)尚未加载..所以它返回0
答案 1 :(得分:0)
尝试使用$(window).load(function(){...});
而不是文档就绪。
如果它仍然不起作用,那么这可以工作,使用计时器让DOM完全渲染,稍微玩一下(如果1000不起作用,请尝试3000)。
jQuery(document).ready(function () {
setTimeout(function () {
alert(jQuery('.fs-pic').width());
jQuery('#accordion-wrapper').raccordion({
speed: 1000,
sliderWidth: jQuery('.fs-pic').width(),
sliderHeight: 360,
autoCollapse: false
});
}, 100);
});
我注意到outerWidth()
和innerWidth()
可以提供帮助,但我还没有尝试过。
答案 2 :(得分:0)
在文档准备就绪时尝试代码,可能没有加载dom,我们在加载dom之前调用。 IE浏览器需要花费更多时间来加载FF和Chrome。
$(document).ready(function(){
$('.fs-pic').width();
});
答案 3 :(得分:0)
您可以将load-event添加到图像中。加载图像时,事件将触发:
$(document).ready(function () {
$('.fs-pic img').load(function() {
alert($('.fs-pic').width()));
});
});
我有一个工作JSFiddle,它向您显示,即使在Chrome中,当您加载大图像或连接速度较慢或浏览器速度较慢时,包装图像的范围宽度也可以为0。当您重新运行JSFiddle时,图像将位于浏览器缓存中,因此访问$(document).ready()
内的宽度也会起作用。