1

私はimgページに以下を持っています

<img class="some-class" src="img/some-img.gif" style="top: 29px; left: 121px;">

私が持っているCSSで

img.some-class {
    display: inline-block;
    position: absolute;
}

imgに位置しdivていdisplay: inline-blockます。

私がやっているとき、ページの最初のロード時(つまり、ブラウザを開いた後の最初のロード時)にconsole.log($img.height())出力します。0ページを更新した後でもconsole.log($img.height())、高さの実際の値が出力されimgます。問題の原因は何ですか?

アップデート。img は動的に追加されることに注意してください。

4

1 に答える 1

5

画像が読み込まれる前は、ブラウザーは高さを認識していません。2 回目にページを読み込むと、画像は既にブラウザーのキャッシュにあるため、高さが認識されます。

ブロックconsole.log()内にコールを配置する必要があります。$(window).load()これは、画像が読み込まれた後に実行されます。

$(window).load(function() {
    console.log($('img#myimg').height();
});

画像が動的に追加される場合はload()、画像自体にハンドラーを配置できます。

$('img#myimg').load(function() {
    console.log($(this).height());
});

イベント情報を読み込む:

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

Google で見つけた詳細情報:

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

于 2013-02-05T11:53:37.507 に答える