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 :

Toggle ne se lance au simple click que la première fois


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2
    Par défaut Toggle ne se lance au simple click que la première fois
    Bonjour,

    J'essaie, pour m'exercer (rien d'autre ^^'), de reproduire peu à peu quelques fonctionnalités de Twitter. Voici le lien :

    http://www.spharian.be/lab/minichat/

    Quand on clique sur la croix, ma div s'agrandit (slideDown) pour laisser appraitre le lien de suppression et la croix devient bleue. Une fois qu'une autre croix est cliquée, le précédent se ferme et le cliqué s'ouvre, etc... tout marche niquel quand je clique sur une croix pour la 1ère fois. Cependant, si je re-clique sur une croix (que j'ai déjà cliqué, donc), il faut 2 clics pour que cela fonctionne. Je ne parviens par à trouver le problème

    Voici le bout de code qui permet de gérer ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    	var msgFooter = $(".msg-footer"),
    			msg = $(".msg"),
    			deleteBtn = $(".delete-button"),
    			originalColor = "#3a3a3a",
    			slideSpeed = 100;
     
    		deleteBtn.toggle(function() {
    			deleteBtn.css("color", originalColor); //set every deleteBtn to their original color
    			$(this).css("color", "#0881bf"); //on first click, set blue color to the click deleteBtn
    			msg.find(msgFooter).slideUp(slideSpeed);
    			$(this).parent().find(msgFooter).slideDown(slideSpeed);
    		}, function() {
    			$(this).css("color", originalColor); //on second click, set the original color to deleteBtn
    			msg.find(msgFooter).slideUp(slideSpeed);
    		});
    J'espère que vous saurez m'aider

    Merci d'avance :-)

  2. #2
    Membre chevronné
    Avatar de kalimukti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 262
    Par défaut
    Bonsoir,

    Ton problème vient du toggle.
    Si tu cliques sur un de tes boutons delete, tout marche bien. Si tu cliques sur un 2ème, pareil. Mais si tu reviens sur un bouton déjà cliqué, c'est la deuxième fonction du toggle qui est appelée, celle qui ferme tout. Du coup, tu es obligé de recliquer pour lancer la première fct du toogle.
    Tu devrais sans doute mieux passer par .click() en gardant en mémoire (et testant) l'état de tes footers.

    Hope that helped.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2
    Par défaut
    Problème résolu, grâce à ta réponse, merci :-)

  4. #4
    Membre chevronné
    Avatar de kalimukti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 262
    Par défaut
    Citation Envoyé par Sylsky Voir le message
    Problème résolu, grâce à ta réponse, merci :-)
    Anytime... heureux d'avoir pu t'aider

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. $.getJSON ne marche que la première fois
    Par Sayrus dans le forum jQuery
    Réponses: 8
    Dernier message: 03/09/2009, 14h51
  2. Réponses: 2
    Dernier message: 04/02/2009, 14h56
  3. Développer un ComboBox par un simple click
    Par Akeon dans le forum C++Builder
    Réponses: 3
    Dernier message: 06/07/2007, 11h57
  4. JTree et simple click
    Par motorenshi dans le forum Composants
    Réponses: 3
    Dernier message: 18/03/2007, 16h49
  5. Cheklistbox, comment tout cocher par un simple click ?
    Par gsmdu62 dans le forum Composants VCL
    Réponses: 7
    Dernier message: 01/05/2006, 10h52

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