所有图像加载完毕后调用一个函数

时间:2017-11-03 05:22:59

标签: javascript jquery

$.ajax('html url')
    .done(function(response) {
            var resultHtml = $(response).find("#content").children();
                $("#content").html(resultHtml);                    
                $(document).height();            
    })

这里我需要计算文件的响应高度。但是这个响应包含多个图像,需要时间来加载。因此文档高度低于要求。

我尝试对图像使用jquery加载函数 - 就像这样

$('img').load(function(){
   $(document).height();
});

但在这种情况下它也无法正常工作。但是,对于图像使用javascript完整方法,它会返回正确的高度(对于单个图像)。

 document.getElementById("#image1").complete{
   $(document).height();
 }

但是我的回复包含多个图像,因此getElementById不起作用。我想用jquery来实现这个目的。

2 个答案:

答案 0 :(得分:0)

试试这个

var images= document.images,
length = images.length,
cnt = 0;

[].forEach.call( imgs, function( images) {
    images.addEventListener( 'load', incrementCounter, false );
} );

function incrementCounter() {
    cnt++;
    if ( cnt=== length ) {
        console.log( 'All image load' );
        $(document).height(); //your code
    }
}

答案 1 :(得分:0)

在js:

上使用此功能
$("img").imagesLoaded(function(){
//do something here, it will run after image loaded, but please attention about browser cache
});

使用imagesLoaded.js查看https://imagesloaded.desandro.com