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 :

La fonction .slideToggle


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 137
    Par défaut La fonction .slideToggle
    Bonjour,

    J'aurai une question à propos du .slideToggle.

    Au 1er clic je charge les lignes suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $('#list_box .list').first().css('border-left', 'none');
    		$('#list_box .list').last().css('border-right', 'none');
    		$("a[rel='mybox']").click(function(){
    			$('#list_box').css('-moz-border-radius', '3px 3px 0 0');
    			$('#mybox').css('border-top', 'solid 1px #ededed');
    			$('#list_box').css('border-bottom', 'solid 1px #a9a9a9');
    			$('#mybox').css('-moz-border-radius', '0px 0px 3px 3px');
    Mais au second clic je voudrais que les lignes que j'ai chargé disparaisses, alors j'ai placé le code suivant, mais forcement sa ne marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $("#mybox").slideToggle('slow', function() {
    				$('#mybox').css('border-top', 'none');
    				$('#list_box').css('border-bottom', 'none');
    				$('#list_box').css('-moz-border-radius', '3px');
    Quelqu'un aurait-il un idée ?
    Merci

    Le code entier :

    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
    16
    17
    18
    19
    20
    21
    22
    $(document).ready(function(){
    	mybox.init();
    });
     
    mybox = {
    	init : function(){		
    		$("#mybox").hide();
    		$('#list_box .list').first().css('border-left', 'none');
    		$('#list_box .list').last().css('border-right', 'none');
    		$("a[rel='mybox']").click(function(){
    			$('#list_box').css('-moz-border-radius', '3px 3px 0 0');
    			$('#mybox').css('border-top', 'solid 1px #ededed');
    			$('#list_box').css('border-bottom', 'solid 1px #a9a9a9');
    			$('#mybox').css('-moz-border-radius', '0px 0px 3px 3px');
    			$("#mybox").slideToggle('slow', function() {
    				$('#mybox').css('border-top', 'none');
    				$('#list_box').css('border-bottom', 'none');
    				$('#list_box').css('-moz-border-radius', '3px');							
    			});
    		});
    	}
    }

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir.

    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
    16
    /*
     * Je ne sais pas si j'ai bien compris votre question.
     * S'il s'agit d'ajouter et puis d'enlever des styles CSS,
     * il est préférable de passer par l'ajout ou le retrait
     * d'une classe. Exemple :
     */
    $("a[rel='mybox']").click(function(){
    	$('#list_box').addClass("listBoxClass");
     
    	$('#mybox').addClass("myBoxClass");
     
    	$("#mybox").slideToggle('slow', function() {
    		$('#list_box').removeClass("listBoxClass");
    		$('#mybox').removeClass("myBoxClass");
    	});
    });
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    .listBoxClass {
    	-moz-border-radius: 3px 3px 0px 0px;
    	border-bottom: 1px solid #a9a9a9;
    }
    .myBoxClass {
    	-moz-border-radius: 0px 0px 3px 3px;
    	border-top: 1px solid #ededed;
    }

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 137
    Par défaut
    Arf, sa ne marche pas se donne le même effet...

    En faite se que je veux, c'est que lorsque je clic, ce style ($('#list_box').addClass("listBoxClass"); $('#mybox').addClass("myBoxClass") se charge et reste actif a la fin du chargement du .slideToggle, puis quand je clic une seconde il disparaisse.

    Hors, la il apparait le temps du chargement du .slideToggle puis disparait avec le .removeClass, comme dans mon script original.

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    Si vous souhaitez gérer les styles par rapport à l'état du toggle, le mieux serait de remplacer la fonction slideToggle par les fonctions slideDown() et slideUp().

    Voir : http://api.jquery.com/

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 137
    Par défaut
    Merci, j'ai trouver hier enfaite, il faut utiliser la fonction .toggle couplé avec les fonction .slideIn et .slideOut

    Merci pour l'aide.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/02/2013, 01h08
  2. Fonction API
    Par margilb dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/07/2002, 11h11
  3. Implémentation des fonctions mathématiques
    Par mat.M dans le forum Mathématiques
    Réponses: 9
    Dernier message: 17/06/2002, 16h19
  4. fonction printf
    Par ydeleage dans le forum C
    Réponses: 7
    Dernier message: 30/05/2002, 11h24
  5. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07

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