4

取得した長いタイプの文字列があり、画像のbase64として設定したいsrc

 $('#img').attr('src',base64data)
 console.log('height - ' $('#img').height());
 console.log('width - ' $('#img').height());

0との両方heightに戻ってきたようwidthです。もちろん、しばらく待てば適切な高さになります。

問題は、コールバックがないことです。属性が設定され.attr()た後、元に戻らずに高さと幅を取得するにはどうすればよいでしょうか。(Jqueryの変更が非同期で行われているため、0になっていると思いますが、確信が持てません)src0

4

1 に答える 1

11
$('#img').one('load', function() {
   console.log('height - ' $(this).height());
   console.log('width - ' $(this).width());
})
.attr('src',base64data);

/* if this image is already cached load event couldn't be fired:
 * then look for "complete" status and trigger load event 
 */
if ($('#img').get(0).complete) {
   $('#img').trigger('load');
}

取得する前に、イベントを待つ必要がwidthあります。メソッドを使用したことに注意してください。画像が既にキャッシュされている場合、イベントを 2 回発生させるべきではないためです。heightloadone()load

于 2012-05-22T07:36:26.853 に答える