la liaison événement onload sur l'image de l'objet jquery
Salut j'ai code suivant sur mon site
backgroundImages[bg_img_path_b]=new Image();
backgroundImages[bg_img_path_b].src = bg_img_path_b;
backgroundImages[bg_img_path_b].loaded="loading";
//jQuery(backgroundImages[lastImage]).unbind('load.backgroundImages');
jQuery(backgroundImages[bg_img_path_b]).bind('load.backgroundImages',function(){
if(typeof callback=='function'){
callback.call(this, bg_img_path_b);
if(showLoading) hideLoadingDC();
}
}).bind('load.cache', function(){
backgroundImages[bg_img_path_b].loaded="true";
});;
Il y a une grande galerie fo images utilisées en arrière-plan des images de la page wrapper..j'ai besoin de précharger les images à cause de la vitesse (les images sont assez grandes). J'ai donc ce code (en fait n'est qu'une partie de la plus grande fonction, qui enveloppe la mise en cache et ainsi de suite, mais ces quelques lignes sont déclenchés lorsque l'image n'est pas dans le cache)..
backgroundImages est un grand tableau d'objets de l'Image, la clé est le path est le chemin d'accès de l'image. Chaque Image obejct a mon bien "chargé" qui dit que si l'image a déjà été chargée, ou s'il est actuellement en état de chargement.
Comme vous pouvez le voir dans mon code j'appelle la fonction de rappel lorsque l'image est chargée (il y a des changements de l'arrière-plan, etc.)
Mais j'ai un problème avec I. E<9..le rappel n'est pas avec succès fired up (mais pas à chaque fois)..Lorsque je charge ma page pour le premier, il se charge correctement, mais quand j'appelle cette fonction, encore une fois, il se passe correctement, sans erreur, mais l'événement de chargement n'a pas tiré..
Je ne sais pas vraiment par où pourrait être une erreur, dans tous les navigateurs, sauf les plus âgés S il fonctionne très bien..
En fait j'ai besoin de déboguer si l'événement est appliqué correctement, mais je ne le vois pas dans IE et Chrome sous charge de l'élément dans le débogueur:(
S'il vous plaît aider, je suis complètement foutu, vraiment je sais pas quoi faire..
onload
lorsque l'image est chargée dans le cache du navigateur. Qui pourrait expliquer votre expérience de "pour la première fois, des œuvres, à partir de là, ne fonctionne pas".En fait, j'ai mal exprimé moi..je voulais dire lors de l'appel de la fonction 2ème fois..peu importe si l'image est dans le cache..
OriginalL'auteur simekadam | 2011-06-16
Vous devez vous connecter pour publier un commentaire.
Donc, il ya quelques jours j'ai enfin trouvé une solution à mon problème..Il semble que sa matière si j'ai d'abord lier l'événement onload, puis définissez l'url de l'Image, ou à d'abord mettre l'url et puis de lier l'événement..
Exemple
Première variante fonctionne généralement bien, mais parfois, il échoue (dans les anciennes S)..Mais la deuxième variante est sûr de travail propely..
Ne devrait-elle pas être
.src
au lieu de.url
?OriginalL'auteur simekadam
qui jQuery API version utilisez-vous? Essayez d'utiliser la dernière version de jQuery.
Utiliser ce simple code JavaScript à charger les images sur l'appel de votre fonction sur body onload:
Ce script est juste pour charger toutes les images.
Oui, je vois, mais je ne suis que de l'extraction de 1 image à l'avance
Ce script est juste pour charger toutes les images et mise en cache. Vous pouvez appeler chaque image à l'aide de cette fonction showImage(strImage) { var imgPath = "images/galerie/" + strImage, vrai; document.getElementById("imgHover").style.fond = imgPath ; } et onclik événement, vous pouvez l'appeler comme ceci : javascript:showImage('gImg11.jpg');
Sima: j'ai créé pour vous un exemple avec ce script. Cliquez sur le lien pour l'afficher: designworks.com.pk/exemple/arrière-plan --- Merci!
OriginalL'auteur Ahsan Rathod