如何从jquery json解析中获取图像大小?

时间:2012-04-07 23:14:34

标签: jquery json image-size

如何从jquery json解析中获取图像大小?我放了each function,首先将所有图片下载到html部分,然后尝试使用width()& height()到图片大小,但我遇到了width()& height()位于图像加载之前。

http://jsfiddle.net/7eLj4/

中的示例代码

jQuery代码:

$(document).ready(function(){
    var data = '[{"image":"http:\/\/pcdn.500px.net\/6269271\/a85b2995b4d80748831492be5e8a3689895a2b0e\/4.jpg"},{"image":"http:\/\/pcdn.500px.net\/5953805\/d0dd841969187f47e8ad9157713949b4b95b3bda\/4.jpg"},{"image":"http:\/\/pcdn.500px.net\/5735750\/0dd26cb9f53b7bbbedf1b65c0d0aac013f77466c\/4.jpg"}]';
    var obj = $.parseJSON(data);
    $.each(obj, function(index,item) {
       $('#imagewrap').append('<img class="images" src="'+item.image+'" />');         
    });
    $('.images').each(function(){
        var width = $(this).width();
        var height = $(this).height();
        var imgsrc = $(this).attr('src');
        alert(width+''+height+''+imgsrc);           
    });   
});​

Html代码:

<div id="imagewrap"></div>

2 个答案:

答案 0 :(得分:0)

为每个图像调用从.width()函数访问图像的.height()onload的函数。图像下载完成后会调用onload

myImage.onload = function() {
    var accurateWidth = myImage.width();
}

答案 1 :(得分:0)

绑定到图像加载事件:

$('.images').bind('load', function () {
  // do something here
});

这是您的小提琴更新以演示:http://jsfiddle.net/7eLj4/5/