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 :

SlideToggle (Fermeture auto)


Sujet :

jQuery

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2011
    Messages : 101
    Par défaut SlideToggle (Fermeture auto)
    Bonjour à tous,

    Je possede plusieurs interviews, possedant chacune un titre. Lors du clic sur l'un de ces titres la video apparait en dessous en slideToggle. Cela fonctionne très bien, cependant je voudrais que deux videos ne soient pas visibles en meme temps. Donc si on clique sur le titre d'une autre interview, celle ouverte précedemment se ferme pour ensuite ouvrir la seconde. Donc slideUp avant slideToggle...

    J'ai déjà essayé plusieurs choses mais rien ne fonctionne :/ Voici mon code et la page avec le script en action :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $('#interviews a.interview-title').click(function() {
    	var $nextDiv = $(this).next('.interview-content');
    	var $visibleSiblings = $nextDiv.siblings('div:visible');
    	if ($visibleSiblings.length ) {
    		$visibleSiblings.slideUp('500', function() {
    			$nextDiv.slideToggle('500');
    		});
    	}
    	else {
    		$nextDiv.slideToggle('500');
    	}
    });
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <ul id="interviews">
    	<li><a class="interview-title">Votre vision du monde des affaires et de l’économie a-t-elle changé avec le temps ? Et si oui, comment ?</a>
    <div class="interview-content"><iframe src="http://www.youtube.com/embed/0zFjO5nnGlE?rel=0&amp;showinfo=0&amp;vq=hd720&amp;wmode=transparent" height="320" width="570" allowfullscreen="" frameborder="0"></iframe></div></li>
    	<li><a class="interview-title">Comment doivent s’organiser les qualités d’un manager qui doit organiser la vie de plusieurs sociétés aujourd’hui ?</a>
    <div class="interview-content"><iframe src="http://www.youtube.com/embed/Q0i61jZr_tU?rel=0&amp;showinfo=0&amp;vq=hd720&amp;wmode=transparent" height="320" width="570" allowfullscreen="" frameborder="0"></iframe></div></li>
    </ul>

    Lien vers la page

    Un grand merci !

  2. #2
    Membre confirmé Avatar de royto
    Homme Profil pro
    Développeur .Net & Web
    Inscrit en
    Mai 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .Net & Web

    Informations forums :
    Inscription : Mai 2005
    Messages : 92
    Par défaut
    Le pb de ton code vient que tu cherches les noeuds frères (siblings) de ton div. Il n'y a qu'un div dans ton li et donc il ne te renvoie rien. Il faut remonter au parent, récupérer ses frères et chercher les div visibles dans chaque li.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $('#interviews a.interview-title').click(function() {
    	var $nextDiv = $(this).next('.interview-content');
    	var $visibleSiblings = $(this).parent().siblings().find('div:visible');
    	if ($visibleSiblings.length ) {
    		$visibleSiblings.slideUp('500', function() {
    			$nextDiv.slideToggle('500');
    		});
    	}
    	else {
    		$nextDiv.slideToggle('500');
    	}
    });

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2011
    Messages : 101
    Par défaut
    Merci beaucoup !

    Premièrement ça fonctionne et deuxièmement j'ai compris xD
    Un grand merci !

  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 : 74
    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

    Une autre solution.

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    /*
     * Le nombre de divisions interview est fixe, inutile
     * de le déterminer à chaque clic.
     */
    var jObjDivsInterview = $( "#interviews" ).find( "div.interview-content" );
     
    $( "a.interview-title", "#interviews" ).on( "click", function(){
    	var jObjDiv = $( this ).next();
     
    	/*
    	 * Uniquement si la division n'est pas déjà visible, évite 
    	 * un va-et-vient si l'utilisateur active une seconde 
    	 * fois le même lien.
    	 * 
    	 * Peut importe le nombre de divisions ouvertes, même 
    	 * si zéro.
    	 * 
    	 * 500 millisecondes est un chiffre pas un string.
    	 */
    	if ( jObjDiv.is( ":hidden") ){
    		jObjDivsInterview.slideUp( 500, function(){
    			jObjDiv.slideDown( 500 );
    		});
    	}
     
    	/*
    	 * Supprime l'action par défaut et la
    	 * transmission de l'événement.
    	 */
    	return false;
    });

    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.)

Discussions similaires

  1. [WD 11] Fermeture auto, login et système de QCM
    Par Grounch dans le forum WinDev
    Réponses: 14
    Dernier message: 04/03/2007, 20h25
  2. formulaire avec fermeture auto
    Par Renardo dans le forum Access
    Réponses: 3
    Dernier message: 04/09/2006, 20h20
  3. Fermeture auto d'un popup
    Par psychoBob dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 01/06/2006, 08h42
  4. [fermeture] JSP fermeture auto page..
    Par nix dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 21/01/2005, 11h40
  5. fermeture auto de connexion TComPort
    Par billoum dans le forum C++Builder
    Réponses: 2
    Dernier message: 21/08/2004, 00h22

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