11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je souhaite appliquer une fonction test jQuery qui affiche la hauteur de chaque image à toutes les images d'une page contenues dans un div de classe 'galerie' :

<script type="text/javascript">
	$(window).load(function(){
		$(".galerie > img").each(function() {
			alert($(this).height());
		});
	});
</script>


Si l'affichage des images provient d'une page html statique, pas de problème;

En revanche, avec le code php suivant (avec une boucle) je n'obtiens que la hauteur de la première image et ensuite des "0" :

		for ($i=0 ;$i < $nbPublis ; $i++)
		{
			print("<div class=\"blocphoto galerie\">");
			print("<img src=\"".$images_bdd[0]['link']."\" />");
			print("</div>");
		}


On dirait que la fonction n'est exécutée qu'une seule fois et appliquée ensuite à toutes les images avec le même paramètres height du $(this) correspondant à la première image...

Merci pour votre aide Smiley confus
Modifié par cubeim (20 Feb 2012 - 13:39)
a écrit :
print("<img src=\"".$images_bdd[0]['link']."\" />");


A chaque fois que tu entres dans ta boucle tu affiches l'image numéro 0 de la base, donc toujours la même. C'est pourquoi il te retourne toujours le même résultat, celui de l'image_bdd[0] Smiley smile

C'est pas plutôt

print("<img src=\"".$images_bdd[b][$i][/b]['link']."\" />");


? Smiley smile
Modifié par Seyu (20 Feb 2012 - 14:15)
Non, en fait je n'ai pas mis tout le code pour simplifier mais le tableau $images_bdd est chargé à chaque itération :

$images_bdd = $messages->listerData($messages->dbTableImages,$selecteur);


et de fait les images s'affichent et sont différentes.

Le problème semble venir du $(this) qui ne pointe pas sur chaque objet image. Mais pourquoi ???
Modifié par cubeim (20 Feb 2012 - 14:22)

		$("[b].galerie > img[/b]").each(function() {


Je sais pas si ça peut venir d'ici mais personnellement je n'ai jamais vu l'opérateur " > " o_O
$(".galerie img").each(function() {
suffit à indiquer toutes les balises img de ta classe galerie
Modifié par Seyu (20 Feb 2012 - 14:31)
Ça ne vient pas de là; le ">" sert à désigner exclusivement les enfants directs et non tous les enfants.