我有一个很长的base64
类型字符串,我想设置为图片的src
$('#img').attr('src',base64data)
console.log('height - ' $('#img').height());
console.log('width - ' $('#img').height());
我似乎正在为0
和height
取回width
。当然如果我等一会儿
然后我会得到适当的高度。
事情是.attr()
没有回调,如果设置src
属性而没有获得0
,我将如何获得高度和宽度。 (我想我得到0因为Jquery的变化是异步发生但我不能太确定)
答案 0 :(得分: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
和height
之前,您需要等待load
事件。
请注意,我使用了one()
方法,因为如果图片已经过缓存,则不应触发load
事件两次