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

jQuery Discussion :

hover qu'une seul fois


Sujet :

jQuery

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 3
    Par défaut hover qu'une seul fois
    Bonjour,

    Je souhaite avoir des informations qui se déploient en passant la souris sur le titre grâce au script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $(document).ready(function(){
    	$(".slide div").hide();
     
    	$(".slide span.link").hover(function() {
    		$(this).next("div").slideToggle("slow")
    		.siblings("div:visible").slideUp("slow");
    		$(this).toggleClass("active");
    		$(this).siblings("span.link").removeClass("active");
    	});
     
    });
    Mais je ne sait pas comment faire pour que le hover ne se fasse qu'une seul fois. C'est à dire que seul la div qui est déployé resté déployé.

    Merci d'avance,

    Très cordialement,

    Nicolas

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 205
    Par défaut Bonjour Galgor,
    et bienvenue sur le forump de jquery de développer. Concernant ta question je pense que le code suivant devrait faire ton affaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    $(document).ready(function(){
      $(".slide div").hide();
     
      $(".slide span.link").one('hover',function() {
          $(this).next("div").slideToggle("slow")
          .siblings("div:visible").slideUp("slow");
        $(this).toggleClass("active");
          $(this).siblings("span.link").removeClass("active");
    });
     
    });
    La méthode one() de jquery permet de d'appeler un évènement une seule fois. Dis mois si cela te convient.

    PS : pour ton confort ( et celui des lecteurs ) tu as une touche # dans la barre de tâche qui te permet d'insérer une balise code. Le code après et tout joli. Voili et encore bienvenue !!!

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 3
    Par défaut
    Merci beaucoup pour votre réactivité, votre réponse et vos conseilles pour le forum.

    Par contre le hover ne marche pas, j'ai essayé de le remplacer par 'click' et sa marche, bizarre ...

    Si vous avez une réponse à ce problème...

    merci

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 3
    Par défaut
    Tant que j'y suis j'ai une dernière faveur à demandé.
    Je souhaiterai que le ' $(".slide div").hide();' ne se fasse qu'une seul fois au démarrage de la page.

    Et encore merci d'avance

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 114
    Par défaut
    Citation Envoyé par galgor Voir le message
    Tant que j'y suis j'ai une dernière faveur à demandé.
    Je souhaiterai que le ' $(".slide div").hide();' ne se fasse qu'une seul fois au démarrage de la page.

    Et encore merci d'avance
    Je ne pense pas que one() soit utile ici, donc une bonne vielle boucle devrait suffire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for (i = 0 ; i < 1 ; i++)
    {
       $(".slide div").hide();
    }
    Ou alors plus joliment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('#hello:visible').hide();
    Tu mets ça n'importe où dans ton JS, il ne l'exécutera qu'une seule fois.

Discussions similaires

  1. [Configuration] filtrer le flux sortant une seule fois, en debut de code...
    Par misstinkiete dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 13/10/2005, 21h20
  2. [DLL] Ma DLL execute le Timer une seul fois !
    Par TOTO32 dans le forum Langage
    Réponses: 14
    Dernier message: 13/08/2005, 20h37
  3. Réponses: 1
    Dernier message: 19/03/2005, 22h47
  4. Réponses: 18
    Dernier message: 10/02/2005, 13h22
  5. Réponses: 2
    Dernier message: 30/11/2004, 11h48

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