Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/10/2011, 22h51   #1
Membre habitué
 
Denis Billo
Developpeur web et Access VBA
Inscription : janvier 2003
Messages : 282
Détails du profil
Informations personnelles :
Nom : Denis Billo
Localisation : France

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

Informations forums :
Inscription : janvier 2003
Messages : 282
Points : 122
Points : 122
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 :
<a href="mapage.php" onMouseOver="MM_showHideLayers('menud1','',show)">LIEUX DE VIE</a>
Voila la fonction pour cacher ou afficher le div
Code :
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 :
<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 ?
__________________
VrroOOOAAAAAPPPPPPPPPP !!!
Décibel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2011, 23h14   #2
Invité régulier
 
Inscription : 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 : 9
Points : 9
Citation:
Envoyé par Décibel Voir le message
Code :
<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
ZeroDivide est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2011, 08h23   #3
Membre habitué
 
Denis Billo
Developpeur web et Access VBA
Inscription : janvier 2003
Messages : 282
Détails du profil
Informations personnelles :
Nom : Denis Billo
Localisation : France

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

Informations forums :
Inscription : janvier 2003
Messages : 282
Points : 122
Points : 122
Oui tu as raison j'avais bien mis out et non over
Code :
<div id="menud1" onMouseOut="MM_showHideLayers('menud1','','hide')">
et le résultat est le même...
__________________
VrroOOOAAAAAPPPPPPPPPP !!!
Décibel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2011, 19h09   #4
Invité régulier
 
Inscription : 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 : 9
Points : 9
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 :
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 :
1
2
3
<a id="lelien" href="mapage.php">LIEUX DE VIE</a>
 
<div id="menud1">bla bla</div>
ZeroDivide est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h28.


 
 
 
 
Partenaires

Hébergement Web