2010-03-13 3 views
2

Supposons que j'ai cette image:JQuery: Problème à obtenir la largeur de l'élément dans Chrome

<img src="images/01.jpg" border="0" rel="shadow" /> 

Puis, avec JQuery, je reçois sa largeur à l'aide:

$('[rel="shadow"]').width(); 

Firefox et IE rapport dimensions correctes de la image par exemple 140px tandis que Chrome signale 0. Comment résoudre ce problème?

Note:

Je ne veux pas définir la largeur explicite pour les images par exemple:

<img src="images/01.jpg" border="0" rel="shadow" width="140" /> 

Alors, comment obtenir la largeur de façon cross-browser qui n'est pas défini dans width attribut d'éléments?

Merci

+0

Quelle version de Chrome? Le script est-il dans un gestionnaire d'événement 'load' ou' $ (document) .ready'? –

+0

@Crescent Fresh: La version de Chrome est: ** 4.0.295.0 ** et le script est à l'intérieur ** prêt. ** – Sarfraz

+0

Il semble que cela pose un problème avec Chrome et Safari. –

Répondre

8
$(window).load(
    function() { 
     alert($('img').width()); 
    } 
); 

Cela fonctionne: Test case. Fondamentalement, il attendra jusqu'à ce que les images se chargent avant d'exécuter le code (lorsque la fonction "Prêt" est activée, le document a été entièrement chargé mais pas les images).

+0

@Andreas Bonini: Parfait, la charge n'a jamais surgi dans mon esprit, Merci :) – Sarfraz

+0

@ andreas-bonini Merci sauvé ma journée! – Gagan

+0

@Gagan: je vous en prie, je suis content que certaines de mes réponses d'il y a des années soient encore utiles aujourd'hui :) –

Questions connexes