Tom's Guide > Forum > Programmation > Soucis avec test if javascript

Soucis avec test if javascript

Forum Programmation : Soucis avec test if javascript

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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 :

 
Code :
  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 :

Code :
  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&eacute;</a>
  3. </div>
 

ma deuxième div :

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

mon iframe :

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


Message édité par SiM07 le 01-02-2009 à 02:16:13
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.
- 0 +

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 ?

Répondre à OmaR

oui c'est tout à fait ça

Répondre à grenouille6943
- 0 +

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:

Code :
  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:

Code :
  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&eacute;</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.

Répondre à OmaR
Tom's Guide > Forum > Programmation > Soucis avec test if javascript
Aller à :

Il y a 2234 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens