script de galerie d'image alsacréation

ViPHP
ViPHP | 3607 Messages

26 sept. 2006, 14:58

Bonjour à tous,
Je suis en train de mettre en place sur mon site cette galerie
Mon problème survient lorsque j'essaye de la modifier...
Ce que je souhaite faire:
rajouter un onclick sur la grande image qui ouvre une popup avec la photo en très grand...
Ce que 'jai déja fait pour y parvenir:
j'ai rajouter un onClick vide dans l'img big_pict...
et rajouter ceci dans la fonction javascript:

Code : Tout sélectionner

big_photo.onClick = 'zoom('+this.href+')';
sachant que zoom est une fonction déclarée plus haut.
Je met donc le tout en résumé:

Code : Tout sélectionner

<script type="text/javascript"> <!-- function zoom(href){ alert("ouais ça marche\nurl de la photo:"+href); } function displayPics() { var photos = document.getElementById('galerie_mini') ; var liens = photos.getElementsByTagName('a') ; var big_photo = document.getElementById('big_pict') ; var titre_photo = document.getElementById('photo').getElementsByTagName('dt')[0] ; for (var i = 0 ; i < liens.length ; ++i) { liens[i].onclick = function() { big_photo.src = this.href; big_photo.alt = this.title; titre_photo.firstChild.nodeValue = this.title; return false; }; } big_photo.onClick = 'zoom('+this.href+')'; } window.onload = displayPics; --> </script> <div id="galerie"> <ul id="galerie_mini"> <li><a href="/islande/images/dotclear_pw.png" title="Titre de la photo 9"><img src="/islande/images/ dotclear_pw.TN__.png" alt="Le titre de la photo 9" /></a></li> </ul> <dl id="photo"> <dt>Titre de la photo 1</dt> <dd><img id="big_pict" src="/islande/images/dotclear_pw.png" alt="Photo 1 en taille normale" onClick="" /></dd> </dl> </div>
bon voilà c'est tout :) en espérant que quelqu'un voit la bourde que 'jai faite ... :roll:
merci d'avance

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

27 sept. 2006, 11:15

Je ne sais pas trop comment il va interprêter ton :

Code : Tout sélectionner

big_photo.onClick = 'zoom('+this.href+')';
j'ai peur qu'il considère que ce soit une chaine et non pas une fonction a évaluer au moment du onClick...

Je n'ai pas du tout essayé, mais je pense que quelque chose de ce genre (syntaxe à vérifier) aurais plus de chance de succès :

Code : Tout sélectionner

big_photo.onClick = function doZoom { zoom(this.href); }

jojolapin e
Invité n'ayant pas de compte PHPfrance

27 sept. 2006, 11:48

Bon j'ai pas essayer c'est juste une idée comme ça...
Je pense que lorsqu'il y a par exemple:

Code : Tout sélectionner

big_photo.alt = this.title;
ça remplace l'alt actuel de l'élément correspondant à big_photo par this.title => une chaine de cractère non?
donc la je pensait simplement remplacer une chaine de caractère et ensuite c'est lorsque de clique que la fonction zoom se mettrait en marche ...
M'enfin bon j'essaye tout à l'heure. merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

27 sept. 2006, 12:04

Ben dans le alt ou le value, effectivement, il ne se pose pas de question et fait la modification, c'est du html tout bête. Dans le onClick, ca devient du javascript.
Il n'évalue pas le texte que tu mets dedans, il l'exécute... du coup si ton texte est "chaine de caractère" il va exécuter "chaine de caractère" (et à priori générer une erreur) et non pas évaluer le contenu de la chaine puis exécuter les instructions évaluées...

Bon ce n'est que pure spéculation, mais ça se tient nan ? ;)

ViPHP
ViPHP | 3607 Messages

27 sept. 2006, 12:20

Bon ben ça marche pas mieu... :cry:
voilà ce que j'ai fait:

Code : Tout sélectionner

big_photo.onClick = function doZoom() { zoom(this.href); };
j'ai rajouter les parenthèses sinon il générai une erreur.
bon et après ça, plus aucune erreur, mais rien de plus qui se passe...
je sais plus trop comment m'y prendre