J'essaie d'accéder à la largeur de certains éléments en utilisant la fonction .width()
de jQuery, mais parfois la valeur de retour est 0
quand je ne m'y attends pas. est-ce un problème connu? Est-ce qu'un élément doit être visible pour que cela fonctionne, peut-être? S'il y a des limites, comment puis-je les contourner?jQuery signale incorrectement une largeur de zéro
Répondre
Si vous traitez avec des images, assurez-vous d'exécuter le code dans $(window).load()
plutôt que $(document).ready()
, comme ceci:
$(window).load(function() {
var width = $("img").width();
});
Sinon, assurez-vous que l'élément est visible, des éléments cachés n'ont pas .width()
ou .height()
(ça va retourner 0 pour les deux).
Suggérez-vous de rendre l'élément en question visible avant d'obtenir la largeur, puis de le refermer? Ou y a-t-il une meilleure solution de contournement? – Pieter
@Pieter - Vous pouvez lui donner une position relative loin de la page, ou juste l'afficher/cacher ... rappelez-vous que JavaScript doit faire une pause pour que le thread d'interface se mette à jour, ainsi l'utilisateur ne verra pas ceci :) –
J'ai choisi de mettre 'display' à' block' mais en gardant 'visibility' réglé sur' hidden' afin que je puisse obtenir la largeur sans risquer que l'utilisateur puisse voir l'élément même pendant une fraction de seconde. – Pieter
L'élément doit avoir chargé .. essayer de liaison sur la fenêtre de charge
$(window).load(function(){ alert('#img').width() });
Vous pouvez également essayer de définir explicitement une largeur par l'élément sur css je suppose.
Vous pouvez vérifier si l'image est visible avec cette condition supplémentaire
$(window).load(function(){ if($("#img").is(":visible"))alert('#img').width() });
- 1. incorrectement
- 2. jQuery 1.4 Ratio d'images incorrectement créé dans IE8 et largeur maximale
- 3. jQuery signale une hauteur d'élément incorrecte dans Firefox iframe
- 4. $ (fenêtre) .height() signale une hauteur incorrecte dans IE8 (jQuery)
- 5. ActionScript 3 largeur et hauteur de l'élément verrouillé à zéro
- 6. C# backgroundWorker signale une chaîne?
- 7. jQuery: largeur() ne fonctionne pas
- 8. jQuery Animer Rembourrage à zéro
- 9. jquery - remise à zéro minuterie
- 10. Jquery traitant des objets de largeur et de hauteur nulles
- 11. Sélecteur Jquery par largeur
- 12. jQuery chaque problème largeur
- 13. hauteur jQuery() largeur()
- 14. largeur jQuery() retourne 0
- 15. C# PrintDialog.PrinterSettings.CanDuplex Rapports incorrectement
- 16. Largeur native dans jquery
- 17. OpenGL - Textures chargement incorrectement
- 18. largeur Calculer dynamiquement (jQuery)
- 19. IE7 rendu CSS incorrectement
- 20. JQuery: Problème à obtenir la largeur de l'élément dans Chrome
- 21. jquery définition de la largeur à une valeur variable
- 22. jQuery Largeur de hauteur dynamique de Modal
- 23. jQuery obtenir hauteur et largeur
- 24. signale une erreur dans les flux de fichiers dans C++
- 25. jQuery EasySlider, non% comme largeur?
- 26. mod_rewrite s'échapper incorrectement des caractères
- 27. Les compteurs de performance s'incrémentent incorrectement?
- 28. Jquery: IE largeur de la fenêtre
- 29. C++: caractères larges générés incorrectement?
- 30. GridView ne signale pas d'exception
J'attends la largeur des éléments effondrés ou cachés à zéro ou 'NaN' (à savoir non définie). – ChrisF