JQuery无法获取动态添加的图片宽度问题解决办法

时间:2023-03-09 01:44:26
JQuery无法获取动态添加的图片宽度问题解决办法
 $('.imgUl li,.v_img').click(function(){
var _left = 0;
var _top = 0;
$('body').append('<div class="pop"><div class="pop_con"><a href="javascript:;" class="img_close"><img src="data:images/img_close.png"></a><img src="'+$(this).children('.pic-off').attr('rel')+'" class="pic_b"/></div></div>');
var newImg = new Image();
newImg.onload = function(){
_h = newImg.height;
_w = newImg.width;
$('.opacityDiv').show();
_left = '-'+parseInt(_w)/2+'px';
_top = '-'+parseInt(_h)/2+'px';
$('.pop').css({'margin-left':'-'+parseInt(_w)/2+'px','margin-top':_top});
$('.img_close').click(function(){
$('.opacityDiv').hide();
$('.pop').remove();
});
}
newImg.src = $(this).children('.pic-off').attr('rel');
});

注:图片在缓存加载时获取的宽度和高度都为0,所以newImg.onload方法可以将图片加载完成后再获取本身的宽高。此时获取的值均为正确的值。