Quand est-ce que le succès d’AJAX est déclenché?

Je souhaite charger un document HTML par AJAX, mais je souhaite le montrer lorsque toutes les images de ce document sont lodées.

$('.about').click(function () { $(".back").load('Tour.html', function () { $(".back").show(); }); }); 

“.back” devrait être visible quand toutes les images dans Tour.html sont chargées, quand est déclenché un événement de succès?

 $(".back").load('Tour.html', function (html) { var $imgs = $(html).find('img'); var len = $imgs.length, loaded = 0; $imgs.one('load', function() { loaded++; if (loaded == len) { $(".back").show(); } }) .each(function () { if (this.complete) { $(this).sortinggger('load'); }); }); 

Cela nécessite au moins un dans le code HTML renvoyé.

Ce que je suggère est d’utiliser un iframe à la place. Voici un exemple de code en JavaScript simple:

 var ifr=document.createElement("iframe"); ifr.style.display="none"; document.body.appendChild(ifr); ifr.onload=function() { // Do what you want with Tour.html loaded in the iframe }; ifr.src="Tour.html"; 

ImagesLoaded est ce que vous recherchez.

Placez tout le code (demande ajax dans ce cas), lorsque les images spécifiées sont chargées.

Le plugin spécifie pourquoi vous ne pouvez pas utiliser load() sur des images en cache