Mise à jour: Ce bogue a été confirmée par au moins deux autres personnes. Même si vous n'avez pas lu mon post complet - si vous êtes de lire ceci et à l'aide de JQuery 1.3.1 puis cesser de l'utiliser si vous êtes en s'appuyant sur tous les gestionnaires que vous souhaitez exécuter lorsque le DOM est terminée, mais avant de la page images ont chargé.
Update2: Grâce à Tom (id utilisateur 20!) pour poster le lien vers le billet sur le jQuery bug tracker.
Update3 - 2009/01/28: Le problème a été résolu correctement (pour ceux pour qui le retour à 1.2.6 n'est pas une option). Toute personne qui aide 1.3.1 et avoir besoin d'une solution immédiate, vous pouvez lire la accepté de répondre ci-dessous pour la direction. Merci John.
Je viens de mettre à JQuery 1.3.1, et il m'a fallu plusieurs heures pour réaliser que mon bien-aimé
$(function( ) { ... }
la syntaxe est maintenant à attendre que la page se charge (y compris les images) avant d'exécuter le corps de la fonction. J'ai été voir un comportement étrange lors de tentatives d'intégration de Yahoo menus. (Heureusement que j'avais une certaine lenteur de chargement des images sur ma page qui m'a fait prendre conscience du problème)!
J'ai fait un fichier de test car j'ai pensé que quelque chose de plus complexe qui se passait, mais j'ai toujours eu les mêmes symptômes, même avec ce simple fichier.
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
<script>
$(function() {
alert("Ready");
});
</script>
</head>
<body>
<img src="<PATH_TO_DYNAMIC_IMAGE>_1.jpg" />
<img src="<PATH_TO_DYNAMIC_IMAGE>_2.jpg" />
<img src="<PATH_TO_DYNAMIC_IMAGE>_3.jpg" />
<img src="<PATH_TO_DYNAMIC_IMAGE>_4.jpg" />
</body>
Les différentes versions de JQuery eu des résultats différents:
- Ce qui se passe dans la version 1.2.6 est que la boîte d'alerte s'affiche instantanément et puis je vois les images de chargement derrière elle (prévu et comportement documenté).
- Ce qui se passe dans la version 1.3.1, c'est que les images de toutes les charges et alors seulement, la boîte d'alerte sera affiché.
Ce qui se passe! Est-ce une nouvelle fonctionnalité (je ne peux pas imaginer pourquoi) ou un bug?
Important: Ce ne semble être un problème dans IE et pas firefox
Désolé je n'ai pas une image dynamique de fichier qui est accessible au public pour le rendre plus facile pour les autres de voir cela. Si vous voulez le tester, je vous conseille d'utiliser un grand fichier image sélectionné au hasard à partir de google images et de vider votre cache.