Partage
  • Partager sur Facebook
  • Partager sur Twitter

[JS]afficher/cacher un div

Sujet résolu
    7 avril 2009 à 10:48:57

    Bonjour,

    J'ai créé 2 fonctions javascript : une pour afficher un div et une autre pour le cacher. Elles affichent quand on passe sous le lien Personnages une liste de liens et les cachent quand on sort de lien personnages et de la liste affichée

    L'affichage se fait sans problème mais pas le cache!!Il cache dès qu'on sort du lien Personnages ce qui fait qu'on ne peut pas aller sur la liste de liens

    Pourriez-vous, s'il vous plait, m'aider à trouver où se situe le problème et à le résoudre? Merci d'avance


    Veuillez trouver ci-dessous mes codes js et php
    <script type="text/javascript">
    function afficherLien(obj)
    	{
    	 document.getElementById(obj).style.display = "block" ;
    	}
    function cacherLien(obj)
    	{
    	document.getElementById(obj).style.display = "none" ;
    	}
    </script>
    

    <div id= "men" onMouseOut="cacherLien('perso')">
    <a href ="?page=Personnage" target="_self" onMouseOver="afficherLien('perso')" >Personnages </a>
    	<div id="perso" style="display:none" >
    				lien1<br/>
    				lien2<br/>
    				lien3<br/>
    				lien4<br/>
    				lien5<br/>
    				lien6<br/>
    	</div>
    </div>
    
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      7 avril 2009 à 10:58:55

      Salut,
      je ne vois aucune erreur. j'ai donc testé pour voir si j'étais fou :D mais non tout fonctionne.

      Donc vérifie que tu n'as pas d'autres fonctions qui pourraient poser problème, et eu petit détail :

      évite au maximum d'utiliser le caractère : " mais plutôt ' qui est plus approprié dans ce cas la.
      function afficherLien(obj)
      	{
      	 document.getElementById(obj).style.display = 'block' ;
      	}
      function cacherLien(obj)
      	{
      	document.getElementById(obj).style.display = 'none' ;
      	}
      
      • Partager sur Facebook
      • Partager sur Twitter
        7 avril 2009 à 11:13:23

        Merci, j'ai remplacé mes ".
        Sinon excuse moi mais cela ne fonctionne toujours pas.
        Je ne vois pas ce qui peut clocher d'autre car je n'ai aucune autre fonction dans mes pages à part que la liste de liens-dont Personnages fait partie-est appelé dans ma page principale pour un include.
        Est-ce que cela peut jouer?(bien que je n'en ai pas l'impression)
        • Partager sur Facebook
        • Partager sur Twitter
          7 avril 2009 à 11:27:56

          sbeex, c'est étrange que tu dis ne pas reproduire. J'ai essayé avec son code (sans rien autour), et je reproduit à la fois sur Firefox,chrome et IE (je n'ai pas testé avec opéra)


          J'ai l'impression que le onmouseout se déclenche dès qu'on quitte le <a>.

          Un contournement serait de placer le onmouseout et le onmouseover sur le <div> contenant le <a> et la liste.

          Le fait de changer les " en ' ne change rien du tout, les 2 servent à définir des chaînes de caractères et leurs utilisations dépendent de la préférence de chacun.
          D'une manière générale on va préférer l'un ou l'autre lorsqu'on veut éviter d'utiliser des caractères d'échappement (pour éviter d'écrire \" ou \').
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            7 avril 2009 à 11:55:45

            Le code ne fonctionne pas ? J'ai mal du comprendre ce que tu cherchais à faire moi quand je survol le texte, les liens s'affichent et quand je survol ailleurs, ils s'effacent c'est le but souhaité non ?

            Citation : restimel

            sbeex, c'est étrange que tu dis ne pas reproduire.



            pas trop compris :(

            Citation : restimel


            Le fait de changer les " en ' ne change rien du tout, les 2 servent à définir des chaînes de caractères et leurs utilisations dépendent de la préférence de chacun.
            D'une manière générale on va préférer l'un ou l'autre lorsqu'on veut éviter d'utiliser des caractères d'échappement (pour éviter d'écrire \" ou \').



            FAUX (sur le principe)
            Cela ne change pas grand chose dans le cas de javascript toutefois un bon codeur se doit d'avoir un style propre. Car quand tu coderas dans d'autres languages, notemment php, l'utilisation de " est plus gourmande en ressources que celle-ci '. (Le préprocesseur n'analyse que le contenu des chaine contenant des " et non celui des ')

            Bref c'est du raffinage mais autant prendre de bonnes habitudes.


            • Partager sur Facebook
            • Partager sur Twitter
              7 avril 2009 à 12:03:36

              merci restimel !

              Je ne comprends toujours pas pourquoi ca ne fonctionnait pas avant( le onmouseout se déclenchait dès qu'on quittait le <a>.)
              Mais maintenant je peux aller sur mes liens sans qu'ils s'effacent. :D
              • Partager sur Facebook
              • Partager sur Twitter

              [JS]afficher/cacher un div

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown