Puis-je affecter un événement à un div à feu lorsque tous les éléments de la div contenant ont été chargés complètement? par exemple. Si la div contient une image, déclenchez un événement sur la div lorsque l'image est entièrement chargée. J'utilise jquery.Affecter un événement à div quand il est entièrement chargé
Répondre
Je ne sais pas comment vous ajoutez dynamiquement votre contenu, mais cet exemple devrait illustrer comment cela pourrait fonctionner.
il utilise .append()
pour simuler votre contenu dynamiquement chargé. Puis, après l'ajout, il utilise .find()
pour trouver les images et .load()
pour fixer un gestionnaire de charge pour eux.
Enfin, il renvoie le length
propriété des images. Ensuite, dans le gestionnaire de charge, lorsque les images finissent de charger, la longueur est décrémentée. Une fois qu'il obtient à 0
, toutes les images sont chargées, et le code à l'intérieur du if()
s'exécute.
Exemple:http://jsfiddle.net/ehwyF/
var len = $('#mydiv').append('<img src = "http://dummyimage.com/150x90/f00/fff.png&text=my+image" /><img src = "http://dummyimage.com/160x90/f00/fff.png&text=my+image" /><img src = "http://dummyimage.com/170x90/f00/fff.png&text=my+image" /><img src = "http://dummyimage.com/180x90/f00/fff.png&text=my+image" />')
.find('img')
.load(function() {
if(--len === 0) {
alert('all are loaded');
}
}).length;
De cette façon, les pistes de code basées uniquement sur les images #mydiv
.
S'il y a des images là-dedans qui ne sont pas dynamiques, et ne devrait donc pas obtenir l'événement .load()
, vous devriez être en mesure d'ajouter un filtre .not()
à exclure les biens complete
est true
.
Placez ceci après le .find()
et avant le .load()
.
.not(function(){return this.complete})
Il est difficile de le vérifier pour une seule div, mais puis-je suggérer d'utiliser $(window).load()
pour vérifier si toutes les images ont été chargées? Si vous utilisez ajax, utilisez le rappel pour voir quand json a été chargé, puis ajoutez $ ("div # id img"). Load() pour voir quand toutes les images ont été chargées. Le seul problème avec ceci est que j'ai remarqué quand l'image est mise en cache, le chargeur ne se déclenche pas. :(
Je chargeais le contenu du div dynamique, de sorte ne peux pas utiliser $ (fenêtre) .load(). J'aurais dû dire dans ma question originale .. – amateur
Voir mon edit bientôt –
Si c'est juste une image que vous avez envie d'attendre, vous pouvez charger l'image avec ajax, puis déclencher l'événement dans le rappel ajax.
Catch l'événement onload de toutes les images dans la div, en y élever un certain compteur global de 1. Si ce compteur est égale à la quantité d'images dans la div ... toutes les images ont terminé le chargement. Devrait être simple en utilisant jQuery.
Cela ne fonctionnera que pour les images, les autres éléments n'ont pas d'événement onload.
Pour ajouter à l'idée de l'Ombre Assistant, vous pouvez essayer le code suivant:
var totalImages = $(".yourImageClass").length;
var loadedImages = 0;
$(".yourImageClass").bind("onload", function() {
loadedImages++;
if (loadedImages == totalImages) {
//all images have loaded - bind event to DIV now
$("#yourDiv").bind(eventType, function() {
//code to attach
});
}
});
- 1. Un événement entièrement re-rendu?
- 2. Comment détecter quand mathjax est complètement chargé?
- 3. Comment enlever div quand iframe complètement chargé avec jQuery
- 4. Cacher un UL quand un url est chargé
- 5. Delphi 6: détecter quand un formulaire est entièrement peint?
- 6. Comment masquer/supprimer un DIV quand il est vide
- 7. Comment savoir quand un winform est chargé par Process.Start?
- 8. Événement Javascript de feu quand un DIV est dans la vue
- 9. Trouver quand un module GWT a chargé
- 10. Quand un composant Swing est-il 'affichable'?
- 11. Comment savoir quand le swf principal est complètement chargé?
- 12. Détecter quand AJAX change HTML dans un DIV dans WebBrowser
- 13. Quand 'drawRect' est-il appelé?
- 14. Faire un élément centré quand il est seul, mais aligné vers la droite quand il est avec un autre élément
- 15. Quand un événement de chargement d'un navigateur se produit-il?
- 16. Est-il possible de dire explicitement à un script quand exécuter, quand la page est ouverte dynamiquement?
- 17. L'iAd dans l'iPhone s'anime quand il n'est pas chargé
- 18. Affectation d'un événement click à div mais pas d'ancrage
- 19. FileStream est-il chargé paresseux dans .NET?
- 20. Quand un callback Cocoa est-il contrôlé?
- 21. Quand un appel performSelectorOnMainThread est-il exécuté?
- 22. Est-il possible d'appeler un événement à un autre événement dans asp.net?
- 23. WPF: Quand un WrapPanel est-il plein
- 24. Dojo addOnLoad, mais Dojo est-il chargé?
- 25. Annuler un événement non chargé dans une application WPF
- 26. Quand un initform est-il utilisé?
- 27. objet à un NSMutableSet automatiquement quand il est lancé ... (iphone)
- 28. [WPF] ItemsControl pas complètement événement @Loaded chargé
- 29. Quand déclencher un événement de contrôle personnalisé?
- 30. Quel événement est déclenché après que toutes les vues ont été entièrement dessinées?
C'est la meilleure méthode que j'ai rencontrée +1 – Blowsie