IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Afficher ou cacher un div


Sujet :

JavaScript

  1. #1
    Membre actif
    Profil pro
    Developpeur web et Access VBA
    Inscrit en
    Janvier 2003
    Messages
    457
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur web et Access VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 457
    Points : 203
    Points
    203
    Par défaut Afficher ou cacher un div
    Je n'ai rien trouvé dans la FAQ, mais pourtant la chose me parait bien simple...

    J'ai un texte qui fait apparaitre un div dans une page.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="mapage.php" onMouseOver="MM_showHideLayers('menud1','',show)">LIEUX DE VIE</a>
    Voila la fonction pour cacher ou afficher le div
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function MM_showHideLayers() { //v9.0
      var i,p,v,obj,args=MM_showHideLayers.arguments;
      for (i=0; i<(args.length-2); i+=3) 
      with (document) if (getElementById && ((obj=getElementById(args[i]))!=null)) { v=args[i+2];
        if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
        obj.visibility=v; }
    }
    J'ai mis sur le div
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="menud1" onMouseOver="MM_showHideLayers('menud1','','hide')">
    Mais dans ce div il y a une liste de liens et dès que la souris passe sur un lien, le div se cache...
    Comme si la souris sortait du div.
    Comment faire pour que le div ne se cache que quand la souris n'est plus sur le div et qu'il ne se passe rien quand la souris passe sur les liens dans le div ?

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par Décibel Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="menud1" onMouseOver="MM_showHideLayers('menud1','','hide')">
    Bah la tu caches le div quand la souris passe dessus, même pas le temps d'aller sur un lien

  3. #3
    Membre actif
    Profil pro
    Developpeur web et Access VBA
    Inscrit en
    Janvier 2003
    Messages
    457
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur web et Access VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 457
    Points : 203
    Points
    203
    Par défaut
    Oui tu as raison j'avais bien mis out et non over
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="menud1" onMouseOut="MM_showHideLayers('menud1','','hide')">
    et le résultat est le même...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    Oui c'est une problème assez classique avec la propagation des évènements.

    Personnellement j'utilise JQuery qui propose des solutions clefs en main avec .mouseenter() et .mouseleave() et je me casse pas la tête avec ca
    Il embarque également tout ce qu'il faut pour manipuler les éléments (cacher, déplacer, redimentionner etc etc).

    La solution simple avec JQuery:
    dans ton header
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script type='text/javascript'>
     $(document).ready(function() {
    	$('#lelien').mouseover(function() {
    		$('#menud1').show();
    	});
    	$('#menud1').mouseleave(function() {
    		$('#menud1').hide();
    	});
     });
    </script>
    et dans le corps HTML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <a id="lelien" href="mapage.php">LIEUX DE VIE</a>
     
    <div id="menud1">bla bla</div>

Discussions similaires

  1. Réponses: 10
    Dernier message: 13/02/2014, 16h54
  2. Afficher et cacher une div avec jquery.
    Par p2w.walas dans le forum jQuery
    Réponses: 2
    Dernier message: 12/08/2009, 10h53
  3. afficher ou cacher un div avec image
    Par avia767 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 14/11/2008, 17h34
  4. Afficher / Cacher une Div contenant un slider
    Par KrusK dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 10/07/2007, 14h53
  5. Afficher, cacher plusieurs divs
    Par Buku dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/03/2005, 10h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo