1

問題を説明するための JSFiddle を次に示します。

http://jsfiddle.net/TKX9j/3/

(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本番コードで待ちきれません。

私はこれを使用しています: http://code.google.com/p/css3-mediaqueries-js/

4

1 に答える 1

0

これは、ブラウザが要素の幅をまだ決定していないためです。そのため、何らかのガベージ値が返される可能性があります。

可能であれば、CSS でデフォルトの幅を設定してみてください。そうすれば、onLoad イベントの前でもそのサイズを取得できます。

于 2013-06-03T01:21:21.030 に答える