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 :

Indices des items pour évènement


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de RowanMayfair
    Femme Profil pro
    Développeuse Freelance
    Inscrit en
    Mars 2019
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeuse Freelance

    Informations forums :
    Inscription : Mars 2019
    Messages : 247
    Par défaut Indices des items pour évènement
    Bonjour les confinés ,

    Je vais essayer de ne pas vous assommer avec mon code, mais faut que je vous montre quand même un peu la structure :
    Code HTML : 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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <div class="row">
                        <div class="col-sm-4">
                            <div class="tp" id="anglais">
                                <div class="titre">
                                    <h2>Module Révision Anglais</h2>
                                    <div class="logos">                                    
                                        <img src="images/logo_Python.png" alt="image logo Python">
                                    </div>
                                    <span class="glyphicon glyphicon-chevron-down"></span>
                                </div>
                                <div class="corps">
                                    <p>Projet : Petit programme destiné à la révision de vocabulaire / grammaire en anglais</p>
                                    <img src="images/captures/Capture_anglais.png" alt="copie écran programme révision anglais">
                                    <br> <br>
                                    <a href="docs/Synthèse_Module anglais.pdf" target="_blank">Fiche de Synthèse</a>                                
                                </div>
                            </div>
                        </div>
                        <div class="col-sm-4">
                            <div class="tp" id="urban">
                                <div class="titre">
                                    <h2>Urban Marginal</h2>
                                    <div class="logos">
                                        <img src="images/logo_eclipse.png" alt="image logo eclipse"> 
                                        <img src="images/logo_java.png" alt="image logo java">
     
                                    </div>
                                    <span class="glyphicon glyphicon-chevron-down"></span>
                                </div>
                                <div class="corps">
                                    <p>TP : Jeu de plateau en 2D client-serveur, l'objectif est de tuer l'adversaire</p>
                                    <img src="images/captures/Capture_Urban.png" alt="copie écran jeu Urban Marginal">
                                    <br> <br>
                                    <a href="docs/synthèse_Urban_Marginal.pdf" target="_blank">Fiche de Synthèse</a>                                
                                </div>
                            </div>
                        </div>
                        (...)
                        </div>
                    </div>
    Je vous le résume :
    Dans chaque div ".row" j'ai 3 div ".tp". Et dans chaque .tp, j'ai une div .titre et une div .corps.

    Je souhaite qu'à l'ouverture, les corps soient cachés, qu'il n'y ait que les titres qui apparaissent.
    Jusqu'ici, tout va bien.

    Là où ça se corse, c'est que, bien sûr, je voudrait que quand l'utilisateur clique sur un .titre, le .corps apparaisse, et seulement celui-là.
    Je découvre seulement Jquéry, c'est peut-être ambitieux mon truc

    Bref.
    Donc j'en suis là :
    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
    $(".corps").hide();
     
        var $lesTitres = $(".row").children(".titre"),
        $lesCorps = $(".row").children(".corps"),
        totalTP = $lesTitres.length,
        openedTp = -1;
     
        validIndex = function(indexToCheck) {
            return (indexToCheck >=0 && indexToCheck < totalTP);
        },
     
        init = function() {
     
            if (validIndex(openedTp)) {
                $lesTitres.eq(openedTp).click(function() {
                    $lesCorps.eq(openedTp).toggle(2000);
                });
            }
        };
     
       init();
     
    });
    et donc ça ne fonctionne pas.
    Enfin mes .corps sont bien cachés, mais j'ai beau cliquer, rien ne s'affiche.
    Donc y a un truc ou 2 que j'ai pas dû bien faire/bien comprendre

    Quelqu'un pourrait-il m'aider ?

    D'avance merci


    Edit : bien sûr j'ai regardé dans les outils développement dans Chrome, j'ai pas de message d'erreur. Dommage

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 496
    Par défaut
    Salut,

    Le plus simple est comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $('.titre').click(function(){
    	$('.corps').hide();//cacher les ".corps"
    	$(this).next('.corps').show(); //montrer le ".corps" suivant de ".titre" sur lequel tu cliques
    });

  3. #3
    Membre éclairé Avatar de RowanMayfair
    Femme Profil pro
    Développeuse Freelance
    Inscrit en
    Mars 2019
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeuse Freelance

    Informations forums :
    Inscription : Mars 2019
    Messages : 247
    Par défaut
    Merci Toufik83, en effet c'est bien plus simple

    Par contre, ça marche pas avec toggle.
    Au risque de paraître exigeante, j'aurai voulu qu'on puisse ouvrir le corps au 1er clic, et le fermer en cliquant de nouveau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $('.titre').click(function(){
    	$('.corps').hide();//cacher les ".corps"
    	$(this).next('.corps').toggle(); /
    });
    c'est peut-être pas possible ? ou trop compliqué ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $(function(){
      $('.titre').click(function(){
        $('.corps').not($(this).next('.corps')).hide();//cacher les AUTRES ".corps" (SAUF celui-ci)
        $(this).next('.corps').toggle(); // montrer/masquer le ".corps" suivant de ".titre" sur lequel tu cliques
      });
    });

  5. #5
    Membre éclairé Avatar de RowanMayfair
    Femme Profil pro
    Développeuse Freelance
    Inscrit en
    Mars 2019
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeuse Freelance

    Informations forums :
    Inscription : Mars 2019
    Messages : 247
    Par défaut
    Oh classe

    Merci jreaux62

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/06/2009, 13h44
  2. Réponses: 4
    Dernier message: 03/02/2009, 15h42
  3. Masquer des items pour une variable d'un tableau croisé dynamique en VBA
    Par Pietro_L dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/10/2007, 16h35
  4. [CP] Des pistes pour capturer des évènements stylet
    Par guipom dans le forum Windows Mobile
    Réponses: 1
    Dernier message: 05/06/2007, 16h12
  5. aide pour la gestion des journaux d'évènements
    Par to_toy dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 22/02/2007, 14h20

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