Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ 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 25/04/2011, 11h58   #1
Membre du Club
 
Inscription : novembre 2007
Messages : 757
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 757
Points : 44
Points : 44
Par défaut Menu tooltips avec un comportement bizarre

Bonjour,

j'aimerais mettre en place un menu comme sur http://store.apple.com/fr (Aide, Votre compte, Voir panier) a l'aide de jquery mais j'ai un peu de mal.
voici en gros ce que j'ai fait:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//Code html
<ul id="menu">
    <li><a href="javascript:;" id="menu1">Menu 1</a></li>
    <li><a href="javascript:;" id="menu2">Menu 2</a></li>
    <li><a href="javascript:;" id="menu3">Menu 3</a></li>
</ul>
 
// contenu menu 1
<div id="tt-menu1" class="menu-sub-tt">
    <ul class="my-list">
        <li><a href="lien.html">Titre 1 menu 1</a></li>
        <li><a href="lien.html">Titre 2 menu 1</a></li>
        <li><a href="lien.html">Titre 3 menu 1</a></li>
    </ul>
</div>
 
// contenu menu 2
<div id="tt-menu2" class="menu-sub-tt">
    <ul class="my-list">
        <li><a href="lien.html">Titre 1 menu 2</a></li>
        <li><a href="lien.html">Titre 2 menu 2</a></li>
        <li><a href="lien.html">Titre 3 menu 2</a></li>
    </ul>
</div>
 
// contenu menu 3
<div id="tt-menu3" class="menu-sub-tt">
    <ul class="my-list">
        <li><a href="lien.html">Titre 1 menu 3</a></li>
        <li><a href="lien.html">Titre 2 menu 3</a></li>
        <li><a href="lien.html">Titre 3 menu 3</a></li>
    </ul>
</div>
 
// Code jquery
$("#menu a").mouseenter(function () {
	$(this).addClass("menu-sub-active");
	$("#tt-" + $(this).attr('id')).stop().fadeTo(300, 1);
}).mouseleave(function () {
	$(this).removeClass("menu-sub-active");
	$("#tt-" + $(this).attr('id')).stop().fadeTo(400, 0, function() { $("#tt-" + $(this).attr('id')).hide(); });
});
 
$(".menu-sub-tt").mouseenter(function () {
	$(this).stop().show();
}).mouseleave(function () {
	$(this).stop().fadeTo(400, 0, function() { $(this).hide(); });
});
je ne mets pas les css car tout est bien affiché.
Lorsque je survole le menu, tout marche bien, mais le probleme est quand je deplace la curseur sur le contenu du menu (#tt-menu1, #tt-menu2 et #tt-menu3) que j'ai un comportement bizarre. sauriez vous ce qui ne va pas? o auriez vous une maniere meilleur et plus propre de le faire?

En vous remerciant par avance.
redah75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2011, 16h40   #2
Rédacteur
 
Avatar de danielhagnoul
 
Homme Daniel Hagnoul
Étudiant perpétuel
Inscription : février 2009
Messages : 3 221
Détails du profil
Informations personnelles :
Nom : Homme Daniel Hagnoul
Âge : 61
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant perpétuel
Secteur : Enseignement

Informations forums :
Inscription : février 2009
Messages : 3 221
Points : 6 767
Points : 6 767
Bonjour

En général, sans la totalité du code (même s'il est réputé irréprochable) ou un lien vers la page il m'est impossible de faire un test et de me rendre compte du problème et donc de répondre à la question.

Dans votre cas, en voyant votre script, je pense que vous tombez dans le cas type décrit dans la FAQ jQuery : Pourquoi ma fonction hover() provoque-t-elle un va-et-vient ?
__________________

FAQ jQuery

Mon cahier d’exercices sur jQuery & Co

Si un message vous a aidé ou vous semble pertinent, votez pour lui !
danielhagnoul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2011, 18h55   #3
Membre du Club
 
Inscription : novembre 2007
Messages : 757
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 757
Points : 44
Points : 44
Bonjour Daniel et merci pour votre reponse.
pour faire simple, voici le lien vers une page contenant le menu dont je parle:
http://www.moroccan-arts.fr/test-menu.php

Merci encore une fois
redah75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 23h11   #4
Membre du Club
 
Inscription : novembre 2007
Messages : 757
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 757
Points : 44
Points : 44
Bonsoir,
Juste pour info, j'ai un peu modifié le code et j'ai mis ceci pour le menu:
Code :
1
2
3
4
5
6
7
$("#menu-sub a").hover(function() {
	$(this).addClass("menu-sub-active");
	$("#tt-" + $(this).attr('id')).stop(true).fadeTo(300, 1);
}, function() {
	$(this).removeClass("menu-sub-active");
	$("#tt-" + $(this).attr('id')).stop(true).fadeTo(300, 0, function() { $("#tt-" + $(this).attr('id')).hide(); });
});
ca l'air de marcher mieux mais j'ai par contre toujours le problem lorsque je survole le contenu du menu deroulant!!
une idee??
Merci
redah75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2011, 08h15   #5
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
pourquoi pas toggleClass() ?
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2011, 13h43   #6
Membre du Club
 
Inscription : novembre 2007
Messages : 757
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 757
Points : 44
Points : 44
au fait le probleme majeur n'est pas la class css mais plutot le jquery que je n'arrive pas a mettre en place pour le menu...
redah75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2011, 20h00   #7
Membre du Club
 
Inscription : novembre 2007
Messages : 757
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 757
Points : 44
Points : 44
j'ai finalement pu resoudre le probleme, et voici le code jQuery si quelqu'un se trouve dans le meme cas:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$("#menu-sub a").hover(function() {
		$(this).addClass("menu-sub-active");
		$("#tt-" + $(this).attr('id')).stop(true).fadeTo(300, 1);
	}, function() {
		$(this).removeClass("menu-sub-active");
		$("#tt-" + $(this).attr('id')).stop(true).fadeTo(200, 0, function() { $(this).hide(); });
	});
 
	$(".menu-sub-tt").hover(function() {
		var link_active = $(this).attr('id').substr(3);
		$("#menu-sub a#" + link_active).addClass("menu-sub-active");
		$(this).stop(true).show().fadeTo(300, 1);
	}, function() {
		$("#menu-sub a").removeClass("menu-sub-active");
		$(this).stop(true).fadeTo(200, 0, function() { $(this).hide(); });
	});
MErci en tout cas
redah75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2011, 08h47   #8
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
toggleClass eut permis de simplifier ce code...
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2011, 04h24   #9
Membre du Club
 
Inscription : novembre 2007
Messages : 757
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 757
Points : 44
Points : 44
ummm, c'est vraiment pas la joie, le code jquery que j'ai soumis bug dans certains cas...
j'espere avoir des reponses avec des propositions de code meilleurs.

Merci
redah75 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 06h50.


 
 
 
 
Partenaires

Hébergement Web