Officiel pour demander jQuery attendre que toutes les images à charger avant l'exécution de quelque chose

En jQuery lorsque vous faites cela:

$(function() {
   alert("DOM is loaded, but images not necessarily all loaded");
});

Il attend pour les DOM à charge et exécute votre code. Si toutes les images ne sont pas chargées puis il encore exécute le code. C'est évidemment ce que nous voulons si nous sommes à l'initialisation de toutes les DOM des choses telles que les affichant ou en masquant des éléments ou d'attacher des événements.

Disons que si je veux de l'animation et je ne veux pas en cours d'exécution jusqu'à ce que toutes les images sont chargées. Est-il un moyen officiel de jQuery pour faire ça?

La meilleure façon que j'ai est d'utiliser <body onload="finished()">, mais je ne veux pas vraiment à le faire que si je dois le faire.

Remarque: Il y a un bug dans jQuery 1.3.1 dans Internet Explorer qui fait en fait attendre que toutes les images à charger avant l'exécution de code à l'intérieur de $function() { }. Donc, si vous êtes en utilisant cette plate-forme, vous aurez le comportement, je suis à la recherche au lieu de la corriger le comportement décrit ci-dessus.

  • ne pas $("img").load() travail?
  • Je pense qu'il vaut de mentionner que si vous définissez les dimensions des attributs, vous ca en toute sécurité exécuter un code en fonction ready qui s'appuient sur ces dimensions. Avec php, vous pouvez les attraper avec php.net/manual/en/function.getimagesize.php sur télécharger pour les stocker en db ou avant la sortie du navigateur.
  • si vous voulez quelque chose de faire un travail incroyable, alors découvrez la très bonne & populaire imagesloaded bibliothèque javascript mentionnés dans cette réponse, en dessous de stackoverflow.com/a/26458347/759452
  • "Ici, je suis venu pour trouver de tout, sauf d'une manière officielle."
InformationsquelleAutor Simon_Weaver | 2009-02-13