Se connecter avec
S'enregistrer | Connectez-vous

Soucis avec test if javascript

Dernière réponse : dans Programmation

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

Lassé par la pub ? Créez un compte
Expert Programmation

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 ?
Expert Programmation

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.
Lassé par la pub ? Créez un compte
Tom's guide dans le monde