Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2274 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  fonction GENERIQUE pour afficher/cacher des DIV

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

fonction GENERIQUE pour afficher/cacher des DIV

n°1690824
sarahz
Posté le 22-02-2008 à 16:18:32  profilanswer
 

Bonjour,
 
Je cherche à afficher/cacher des éléments au clic sur un lien.
 
(page de question/reponse : on affiche la reponse au clic sur la question.
 
mon code marche mais il n est pas generique :
 

Code :
  1. <style type="text/css" media="screen">
  2. div.visible {
  3. visibility:visible;
  4. }
  5. div.hidden {
  6. visibility:hidden;
  7. }
  8. </style>
  9. <script type="text/javascript">
  10. function part1() {
  11. var rep01 = document.getElementById('rep01');
  12. if ( rep01.className == 'hidden' ) {
  13. rep01.className = 'visible';
  14. } else {
  15. rep01.className = 'hidden';
  16. }
  17. }
  18. function part2() {
  19. var rep02 = document.getElementById('rep02');
  20. if ( rep02.className == 'hidden' ) {
  21. rep02.className = 'visible';
  22. } else {
  23. rep02.className = 'hidden';
  24. }
  25. }
  26. </script>
  27. </head>
  28. <body>
  29. <div id="qu01"><a onclick="part1();"  href="#">Question 1</a></div>
  30. <div class="hidden" id="rep01">reponse a la question 1</div>
  31. <div id="qu02"><a onclick="part2();" href="#">Question 2</a></div>
  32. <div class="hidden" id="rep02">reponse a la question 2</div>
  33. </body>
  34. </html>


 
J'ai bien tenté de faire une fonction générique mais... ca ne marche pas :
 

Code :
  1. <style type="text/css">
  2. div.visible {
  3. visibility:visible;
  4. }
  5. div.hidden {
  6. visibility:hidden;
  7. }
  8. </style>
  9. <script type="text/javascript">
  10. function showRep(id){
  11. id = document.getElementById(id);
  12. if ( id.className == 'hidden' ) {
  13. id.className= 'visible';
  14. } else {
  15. id.className= 'hidden';
  16. }
  17. </script>
  18. </head>
  19. <body>
  20. <div id="qu01"><a onclick="showRep("rep01" );"  href="#">Question 1</a></div>
  21. <div class="hidden" id="rep01">reponse a la question 1</div>
  22. <div id="qu02"><a onclick="showRep("rep02" );" href="#">Question 2</a></div>
  23. <div class="hidden" id="rep02">reponse a la question 2</div>
  24. </body>


 
A l'aide !!  
Merci :):):) (je sais que c'est basique comme question, mais je vous jure que j ai cherché avant de poster !)
XXX

mood
Publicité
Posté le 22-02-2008 à 16:18:32  profilanswer
 

n°1690883
tpierron
Posté le 22-02-2008 à 16:54:26  profilanswer
 

Évidemment que ça ne fonctionne pas ton code HTML est foireux. Indice: regarde la valeur que tu donne à l'attribut onclick.

n°1690939
sarahz
Posté le 22-02-2008 à 18:21:35  profilanswer
 

.. onclick="ShowRep('rep01');" ?
ou je suis completement a cote... ?

n°1690991
tpierron
Posté le 22-02-2008 à 19:44:11  profilanswer
 

Bah ouais.
 
Edit: je voulais dire, c'est bien ça qu'il fallait remplacer, pas que t'étais à coté de la plaque, hein ...


Message édité par tpierron le 22-02-2008 à 19:44:58
n°1691181
yann39
⛅⏰♫♪☹☕
Posté le 23-02-2008 à 11:36:49  profilanswer
 

Bof.
 
Moi je ferais :

Code :
  1. function changervisibilite(thingId)
  2. {
  3. var targetElement;
  4. targetElement = document.getElementById(thingId) ;
  5. if (targetElement.style.display == "none" )
  6. {
  7.  targetElement.style.display = "" ;
  8. }
  9. else
  10. {
  11.  targetElement.style.display = "none" ;
  12. }
  13. }


Et là tu appel toujours cette même fonction.
 
Dans ton cas:

Code :
  1. <div><a onclick="changervisibilite(rep01);"  href="#">Question 1</a></div>
  2. <div id="rep01" style="display:none;">reponse a la question 1</div>


Par contre je n'utiliserais pas href="#" car ca va te faire remonter en haut de la page, utilise plutot :

Code :
  1. <div><a href="javascript:changervisibilite('rep01')">Question 1</a></div>
  2. <div id="rep01" style="display:none;">reponse a la question 1</div>


 
;)

n°1691724
sarahz
Posté le 25-02-2008 à 08:31:36  profilanswer
 

Merci beaucoup !
C'est super :)

n°1691760
anapajari
s/travail/glanding on hfr/gs;
Posté le 25-02-2008 à 09:38:28  profilanswer
 

yann39 a écrit :

Par contre je n'utiliserais pas href="#" car ca va te faire remonter en haut de la page, utilise plutot :

Code :
  1. <div><a href="javascript:changervisibilite('rep01')">Question 1</a></div>
  2. <div id="rep01" style="display:none;">reponse a la question 1</div>




Nan mais nan hein :o
on mets pas javascript dans un attribut href.
Les "moins pires pratiques" (et encore, c'est pas le top) voudraient plutot qu'on fasse:

Code :
  1. <a href="unPagePourExpliquerQueSansJsMonSiteMarchePas.html" onclick="return maFonction()"> ...


et ensuite dans ta fonction

Code :
  1. function maFonction(){
  2. /*** ...
  3. des trucs
  4. ... ***/
  5. return false;
  6. }



---------------
Software and cathedrals are much the same - first we build them, then we pray.
n°1691869
yann39
⛅⏰♫♪☹☕
Posté le 25-02-2008 à 13:08:06  profilanswer
 

Citation :

Nan mais nan hein :o  
on mets pas javascript dans un attribut href.


 
Pourquoi ?  
J'ai déjà entendu parler de cette histoire mais les arguments restent assez vague...
 
J'y vois que des avantages moi mis à part que l'utilisateur qui n'a pas js activé ne verra rien.

n°1691870
anapajari
s/travail/glanding on hfr/gs;
Posté le 25-02-2008 à 13:13:38  profilanswer
 

yann39 a écrit :

J'y vois que des avantages moi


lesquels :??:

yann39 a écrit :

mis à part que l'utilisateur qui n'a pas js activé ne verra rien.


ce qui est un inconvénient majeur tu en conviendras ...
 
 


---------------
Software and cathedrals are much the same - first we build them, then we pray.
n°1691872
FlorentG
Unité de Masse
Posté le 25-02-2008 à 13:15:44  profilanswer
 

yann39 a écrit :

J'y vois que des avantages moi mis à part que l'utilisateur qui n'a pas js activé ne verra rien.


Ou celui qui fait Ctrl+Click ou Shift+Click pour ouvrir dans une nouvelle fenêtre/nouvel onglet non plus :(

mood
Publicité
Posté le 25-02-2008 à 13:15:44  profilanswer
 

n°1692125
yann39
⛅⏰♫♪☹☕
Posté le 25-02-2008 à 16:26:16  profilanswer
 

Bon en effet il n'y a que des avantages,
va falloir que je mette à jour mon code.
 
Merci pour la remarque ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  fonction GENERIQUE pour afficher/cacher des DIV

 

Sujets relatifs
Afficher une arborescenceQT4 Comment afficher un objet QPainter dans une fenetre principale??
[Access] Filtrer liste déroulante en fonction d'une autreFonction SQL tte simple
Aide fonction formattage tag Dailymotion / Youtubebib[JS] fonction item()
Afficher &quot; en html avec un echo php ??!!la fonction CHMOD
Animation flash veut pas s afficher. Help !!!!!itextsharp Afficher HTML
Plus de sujets relatifs à : fonction GENERIQUE pour afficher/cacher des DIV


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR