Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检查图像是否已加载?_Javascript_Jquery - Fatal编程技术网

Javascript 如何检查图像是否已加载?

Javascript 如何检查图像是否已加载?,javascript,jquery,Javascript,Jquery,使用ajax,我得到一组图片URL,然后我需要从中创建图库。我还需要制作一个计数器,显示下载图像的数量,如下所示: var images; var load_image = new Image(); load_image.onload = function(){ myPhotoSwipe.show(0); } $.each(images['images'], function(key, value) { load_image.src = ('index.php?load_ima

使用ajax,我得到一组图片URL,然后我需要从中创建图库。我还需要制作一个计数器,显示下载图像的数量,如下所示:

var images;
var load_image = new Image();
load_image.onload = function(){
    myPhotoSwipe.show(0);
}
$.each(images['images'], function(key, value) { 
    load_image.src = ('index.php?load_image=' + value);
    $('#image_count').remove();
    $('span[class="loading"]').after('<div id="count"><h6>Images: ['+key+' / '+images_array['images'].length+']</h6></div>');
    images+= '<li><a href="index.php?load_image='+value+'"><img src="index.php?load_image='+value+'" /></a></li>';
});
var图像;
var load_image=new image();
load_image.onload=函数(){
myphotosweep.show(0);
}
$.each(图像['images'],函数(键,值){
load_image.src=('index.php?load_image='+值);
$(“#图像_计数”).remove();
$('span[class=“load”]')。之后('Images:['+key+'/'+Images_数组['Images'].length+']);
图像+='
  • '; });
    问题是,计数器总是在倒数第二个元素加载,并一直保持在那里,直到加载所有图像,但我需要显示每个图像的负载,就像一个进度

    附言。 我也尝试了
    complete
    ,但没有效果

    你就快到了。 问题是您正在使用相同的图像对象。您需要创建一个load_映像实例数组,并在每个实例返回时在onload内递增计数器

    函数加载(){
    var-imageurl=[];
    imageUrls.push('http://www.nasa.gov/images/content/690106main_iss033e005644_full.jpg');
    imageUrls.push('http://www.nasa.gov/images/content/690669main_201209210010_full.jpg');
    imageUrls.push('http://www.nasa.gov/images/content/691806main_hs3_full_full.jpg');
    imageUrls.push('http://www.nasa.gov/images/content/689231main_Webb_Mirror_Cans_orig_full.jpg');
    var图像=[];
    var i;
    var计数器=0;
    var mainDiv=document.getElementById('somediv');
    var counterDiv=document.getElementById('counter');
    对于(i=0;i
    这应该可以解决它。原因是加载处理程序仅绑定到1个图像对象

    var images;
    
    
    $.each(images['images'], function(key, value) { 
     var load_image = new Image();
    
     load_image.src = ('index.php?load_image=' + value);
    
    $('#image_count').remove();
    
    $('span[class="loading"]').after('<div id="count"><h6>Images: ['+key+' / '+images_array['images'].length+']</h6></div>');
    images+= '<li><a href="index.php?load_image='+value+'"><img src="index.php?load_image='+value+'" /></a></li>';
    
    load_image.onload = function(){
        myPhotoSwipe.show(0);
    }
    
    }); 
    
    var图像;
    $.each(图像['images'],函数(键,值){
    var load_image=new image();
    load_image.src=('index.php?load_image='+值);
    $(“#图像_计数”).remove();
    $('span[class=“load”]')。之后('Images:['+key+'/'+Images_数组['Images'].length+']);
    图像+='
  • '; load_image.onload=函数(){ myphotosweep.show(0); } });
    用示例编辑了我的答案