这是一个用来说明问题的JSFiddle:
(function($) {
var foo = $('#foo');
foo.css('width', "").css('width', foo.width());
foo.text('This is '+foo.css('width')+' wide.');
})(jQuery);
正如你所看到的,我依赖于重置和获取元素的宽度,但是我得到了一个巨大的数字。为什么?当我在左侧设置onLoad
时不会发生这种情况。 No wrap - in <head>
无关紧要。我不能在生产代码中等待onLoad
。
答案 0 :(得分:0)
这是因为浏览器还没有确定元素的宽度,所以很可能只返回一些垃圾值。
如果可能的话尝试在CSS中设置默认宽度,那么即使在onLoad事件之前你也会得到那个大小。