$ .height在第一次加载页面时返回0

Eug*_*y89 1 html javascript css jquery

img在页面上有以下内容

<img class="some-class" src="img/some-img.gif" style="top: 29px; left: 121px;">
Run Code Online (Sandbox Code Playgroud)

在css我有

img.some-class {
    display: inline-block;
    position: absolute;
}
Run Code Online (Sandbox Code Playgroud)

img位于div拥有display: inline-block.

当我做console.log($img.height())它输出0的页面的第一负载(第一次加载的IE浏览器打开后).仍然在我刷新页面console.log($img.height())输出高度的实际值img.什么可能是问题的原因?

UPD.请注意动态添加img.

lef*_*ben 5

在加载图像之前,浏览器不知道高度.第二次加载页面时,图像已经在浏览器缓存中,因此它知道高度.

您必须将console.log()呼叫置于一个$(window).load()区块内.这将在图像加载后运行.

$(window).load(function() {
    console.log($('img#myimg').height();
});
Run Code Online (Sandbox Code Playgroud)

如果动态添加图像,则可以load()在图像上放置处理程序:

$('img#myimg').load(function() {
    console.log($(this).height());
});
Run Code Online (Sandbox Code Playgroud)

加载事件信息:

http://api.jquery.com/load-event/

更多信息在Google上找到:

http://web.enavu.com/daily-tip/daily-tip-difference-between-document-ready-and-window-load-in-jquery/