2010-09-22 3 views
2

J'ai une idée de comment je pourrais faire cela mais je me demandais si quelqu'un avait une meilleure idée ou pourrait m'aider. J'ai une liste non ordonnée avec un nombre variable d'images générées dynamiquement en leur sein. Je voudrais ajouter la largeur de chaque image et définir la largeur de liste non ordonnée contenant à cette valeur.Jquery: ajouter la largeur de tous les éléments d'image dans un conteneur

Par exemple, si trois images étaient sortie html pourrait ressembler à ceci:

<ul id="thumbnails"> 
    <li><a href="#"><img src="image_path"></a></li> 
    <li><a href="#"><img src="image_path"></a></li> 
    <li><a href="#"><img src="image_path"></a></li> 
</ul> 

Si l'image était un 200px, image en deux était 100px, et l'image de trois était 50px, je voudrais attribuer le largeur des vignettes ul à 350px.

$('#thumbnails').css('width', '350px'); 

Chaque image a une 2px marge droite appliquée à l'élément de ligne, donc je voudrais ajouter à l'image aussi bien. Donc, si 3 images ont été générées, je voudrais que la largeur totale soit de 356px.

Merci à tous pour votre aide. J'ai regardé les fonctions each() et width() de jquery pour accomplir ceci.

+0

Merci pour votre réponse. Vous pouvez également l'augmenter en cliquant sur la flèche vers le haut. :) –

Répondre

11
var accum_width = 0; 
$('#thumbnails').find('img').each(function() { 
    accum_width += $(this).width() + 2; 
}); 
$('#thumbnails').width(accum_width); 
+1

remercie l'homme. Je suis allé avec le vôtre parce que vous avez représenté la marge de +2. Bon code. – mau5

+0

Vous pouvez utiliser .outerWidth() pour prendre en compte la marge, etc. Je vous recommande d'utiliser .outerWidth() pour ne pas avoir à changer le "2" si vous changez la marge plus tard ... savoir que ce post a été fait en '10, mais j'ai posté ceci pour tous ceux qui trébucheraient dessus comme je l'ai fait via google search ...) – derekmx271

0

Merci pour le code. Pour le faire fonctionner avec Safari et Chrome, je devais le charger avec la charge de la fenêtre et non pas prêt. Je ne suis pas sûr de ce que l'inconvénient de cette méthode est, mais je suppose que leur est un plus prêt.

Questions connexes