6

状況は次のとおりです。

$(document).ready(function(){
  // this will return different result
  alert($('#foo').width());
  // than this !!!
  setTimeout(function(){
    alert($('#foo').width());
  }, 1000);
});

CSS (<head>セクション内):

<link href='http://fonts.googleapis.com/css?family=Headland+One' rel='stylesheet' type='text/css'>
... and
#foo {
    font-family: 'Headland One', serif;
}

標準フォント (Arial など) を使用すると、すべてうまくいきます (.width()どちらの場合も同じ結果を返します)。

setTimeout適切な.width()値を取得してカスタム フォントを保持する以外の回避策はありますか?

4

1 に答える 1

9

遠いフォントをロードするので。$(window).load()ではなくを使用する必要があります$(document).ready()。最初のものは、すべての離れたフォント/スタイルシート/スクリプトと画像がダウンロードされたときにトリガーされ、2番目のものはDOMの準備ができたときにのみトリガーされます。

于 2012-08-26T19:32:22.680 に答える