I have a long base64 type string I get and I'd like to set as the src of the image
 $('#img').attr('src',base64data)
 console.log('height - ' $('#img').height());
 console.log('width - ' $('#img').height());
It looks like im getting back 0 for both height and width. Of course if I wait a while
then i'll get the proper height. 
The thing is .attr() doesn't have a callback, how would I get about getting the height and width after the src attribute is set without getting 0 back. (I think i'm getting 0 because the change in Jquery is happening asynchronously but I cant be too sure)
$('#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');
}
Before getting width and height you need to wait the load event. 
Note that I used one() method, because if the image is already cached it should not fire the load event twice
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With