Maison  >  Article  >  interface Web  >  Solution à la valeur de la méthode jq width() de 0 sous chrome_jquery

Solution à la valeur de la méthode jq width() de 0 sous chrome_jquery

WBOY
WBOYoriginal
2016-05-16 16:46:591285parcourir

http://photo.163.com/shixiaojian089/train/28002 Ceci est un album photo de NetEase Après l'avoir vu, j'ai voulu l'essayer.

Dans ma méthode de production, j'ai besoin d'obtenir la largeur de chaque photo, il est donc naturel d'utiliser la méthode width() de jq. Il n'y a pas de gros problème lors de l'exécution sous FF et IE, mais des problèmes surviennent lors de l'exécution sur Chrome.

Utilisez alert pour dépanner et constatez que les valeurs obtenues par la méthode width sous chrome sont toutes 0. Dans ce cas, il semble que l'image ne soit pas chargée du tout lorsque le script s'exécute ici. Le problème devrait provenir de $(function(){});, car cette méthode nécessite uniquement le chargement du dom avant de commencer à s'exécuter. Ensuite, modifiez-le pour qu'il s'exécute sous onload, et bien sûr, cela fonctionne maintenant. Cependant, ce n'est évidemment pas une bonne idée. Après tout, exécuter sous onload nécessite d'attendre que tout le contenu du fichier soit chargé avant d'exécuter le script.

Après une recherche en ligne, j'ai trouvé ce type http://www.jb51.net/article/50402.htm qui a également rencontré le même problème. Il y a un message sous son commentaire pour des solutions. , veuillez vous référer à :

Utilisez

$img.load(function(){
var img_h = $img.height();
var img_w = ​​​​$img .width();
}

De cette façon, vous pouvez toujours utiliser $(function(){}); chargé, évitant ainsi d'attendre que tout le contenu du fichier soit chargé.
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn