まず現象を見てみましょう。
< div id="cc ">
<script> <br>$(document).ready(function() { <br>$("#cc").append("< div id='aa ' style='width:200px;height:200px;' /></div>"); <br>alert($("#aa").width()); <br> }); <br></script>
div>
< ;script>
$(document).ready(function() {
$("#cc").append("
");
alert($("#aa").width());
});
script>
(注: image1.jpg の実際の幅は 693 です)
結果は次のようになります:
Opera:34
Firefox:0
IE :28
Chrome:0
Safari:0
F5 で更新すると、結果は次のようになります:
Firefox:693
IE:693
Opera:693
Chrome :0
Safari:0
Safari と Chrome は常に 0 です。
画像が読み込まれていない、またはレンダリングされていないときに計算された画像の幅と高さが間違っていることを理解する必要があります。更新後にキャッシュがあるはずなので、結果は正しいのですが、なぜ Chrome
と Safari は常に 0 ですか?また、IE や OPERA では、実際には最初にエラー値が計算されます。
次のように変更します:
<script> <br>$(document).ready(function() { <br>$("#cc").append( " <img id='aa' src='http://www.jb51.net/images/logo.gif' />"); <br>window.setTimeout(function(){alert($(") # aa").width()); },100); <br>}); <br></script>
この問題を解決したことがありますか、またはこの問題について詳しく知りたいですかBig Bird をご存知の方、アドバイスをお願いします。
$( document).ready(function() {
$("#cc").append("
");
$(" #aa").load(function(){
alert($("#aa").width()
}).attr("src", "http://www.jb51.net/画像/logo.gif") ;
});