Se connecter / S'enregistrer
Votre question

Soucis avec test if javascript

Tags :
  • Impression
  • Programmation
Dernière réponse : dans Programmation
31 Janvier 2009 23:33:25

Bonjour,
j'ai un petit soucis en javascript avec un test if, je vous explique :
en fait au départ j'ai 2 div. La seconde est hidden au départ. C'est lors du survol sur la première que la deuxième apparait. et bien sûr, lorsque la souris s'en va, la deuxième div disparait à nouveau. Le but est que lors du clic sur la première div, la seconde reste visible même lorsque la souris repart.
Jusqu'ici rien de bien compliqué me direz-vous, seulement le problème se gâte lorsque j'ai un menu comme ceci avec 6 éléments, qui font apparaitre chacun une iframe différente au même endroit dans la page.
Seulement avec la fonction ci-dessous la deuxième div ne reste pas affichée après le clic. En fait j'ai l'impression que le test ne fonctionne pas du fait que la frame testée se trouve plus bas dans le code que l'appel à la fonction qui est censée la tester.
Merci pour votre aide car j'ai fais des recherches toute la journée et je n'ai rien trouvé.

mes fonctions javascript :

  1. function affiche_carre_sante(){ document.getElementById("carre_sante" ).style.visibility = "visible"; }
  2. function cache_carre_sante(){
  3. if (document.getElementById("frame_ref" ).src != "references_sante.htm" ) {
  4. document.getElementById("carre_sante" ).style.visibility = "hidden";
  5. } else {
  6. document.getElementById("carre_sante" ).style.visibility = "visible";
  7. }
  8. }


ma première div :
  1. <div class="case_secteurs" onmouseover="affiche_carre_sante();" onmouseout="cache_carre_sante();">
  2. <a href="references_sante.htm" target="frame_ref" class="secteurs_link">Santé</a>
  3. </div>


ma deuxième div :
  1. <div class="case_carre"><img src="images/carre_vert.gif" border="0" id="carre_sante" style="visibility:hidden;" /></div>


mon iframe :
  1. <iframe name="frame_ref" id="frame_ref" src="references_frame.htm"></iframe>

Autres pages sur : soucis test javascript

a c 232 L Programmation
1 Février 2009 23:25:23

Salut,

J'ai pas compris tout ton problème là...

Ton problème c'est que tu veux que quand on clique sur la première div et que l'on sort de la première div, on ait toujours la 2ème div affichée, c'est ça ?
a c 232 L Programmation
3 Février 2009 00:41:44

Je viens de voir que tu avais supprimé ton sujet... Est-ce que c'est normal ou tu as fait une erreur de manipulation ?
Dans tous les cas, je l'ai remis vu qu'il peut être intéressant je pense.

Ca donnerait quelque chose comme ça pour ton code javascript:
  1. var clicked = false;
  2. function affiche_carre_sante(){ document.getElementById("carre_sante" ).style.visibility = "visible"; }
  3. function cache_carre_sante(){
  4. if(!clicked) {
  5. if (document.getElementById("frame_ref" ).src != "references_sante.htm" ) {
  6. document.getElementById("carre_sante" ).style.visibility = "hidden";
  7. } else {
  8. document.getElementById("carre_sante" ).style.visibility = "visible";
  9. }
  10. }
  11. }


Et pour ta 1ère div:
  1. <div class="case_secteurs" onmouseover="affiche_carre_sante();" onmouseout="cache_carre_sante();" onclick="clicked=!clicked;">
  2. <a href="references_sante.htm" target="frame_ref" class="secteurs_link">Santé</a>
  3. </div>

(double clique sur les bouts de code pour supprimer les numéros de ligne et pour pouvoir plus facilement copier le code)

Je ne l'ai pas testé, mais ça devrait le faire.
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS