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

JavaScript Discussion :

Javascript accordéon avec HTML


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Django
    Inscrit en
    Novembre 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Django

    Informations forums :
    Inscription : Novembre 2016
    Messages : 18
    Points : 35
    Points
    35
    Par défaut Javascript accordéon avec HTML
    Bonjour tout le monde,

    J'essaye d'implémenter dans mon application web un accordéons avec les langages HTML, CSS et JS.
    Je suis débutant en JS donc c'est pas évident pour moi de faire marcher cet élément.

    Voici mon code HTML :

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <div class="col-md-12">
          <h3> {% trans "Available publications" %} </h3>
          <hr>
     
          {% for category in category_list %}
            <div class="panel-group accordion" id="accordion_{{ category }}" role="tablist" aria-multiselectable="true">
              <div class="panel panel-default">
                <div class="panel-heading" role="tab">
                  <h4 class="panel-title">
                    <a data-toggle="collapse" data-parent="#accordion_{{ category }}"
                       href="#collapseOne_{{ category }}" aria-expanded="true" aria-controls="collapseOne">
                      <i class="more-less glyphicon glyphicon-plus"></i>
                      {{ category }}
                    </a>
                  </h4>
                </div>
                {% for publication in category.publication.all %}
                  <div id="collapseOne_{{ category }}" class="panel-collapse collapse" role="tabpanel"
                       aria-labelledby="#accordion_{{ category }}">
                    <div class="panel-body">
                      {{ publication }}
                      {% for document in publication.documents.all %}
                        <table class="table table-condensed">
                          <tbody>
                          <tr>
                            <td class="col-md-1">
                              <input type="checkbox" class="fakeRadio" name="DocumentChoice" value="{{ document.id }}"></td>
                            <td class="col-md-1">
                              {% if document.format == 'pdf' %}
                                <span class="badge alert-danger">{{ document.format }}</span>
                              {% endif %}
                              {% if document.format == 'epub' %}
                                <span class="badge alert-info">{{ document.format }}</span>
                              {% endif %}
                            </td>
                            <td class="col-md-1"> {{ document.language }}</td>
                            <td class="col-md-1"> {{ document.title }}</td>
                            <td class="col-md-1">
                              {% if document.publication.new_publication == True %}
                                <span class="glyphicon glyphicon-flag"></span>
                              {% else %}
                                <span></span>
                              {% endif %}
                            </td>
                          </tr>
                          </tbody>
                        </table>
                      {% endfor %}
                    </div>
                  </div>
                {% endfor %}
              </div>
            </div>
          {% endfor %}
     
        </div>

    Et voici mon code JS :

    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
    <script>
        var acc = document.getElementById("accordion_{{ category }}");
        var panel = document.getElementById('panel');
     
        for (var i = 0; i < acc.length; i++) {
            acc[i].onclick = function() {
                var setClasses = !this.classList.contains('active');
                setClass(acc, 'active', 'remove');
                setClass(panel, 'show', 'remove');
     
                if (setClasses) {
                    this.classList.toggle("active");
                    this.nextElementSibling.classList.toggle("show");
                }
            }
        }
     
        function setClass(els, className, fnName) {
            for (var i = 0; i < els.length; i++) {
                els[i].classList[fnName](className);
            }
        }
        </script>
    Le but étant de pouvoir ouvrir plusieurs onglets dans l'accordéon en même temps.
    Pour l'instant je n'arrive pas à ouvrir ne serait-ce qu'un onglet.

    Merci de votre aide

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Développeur Django
    Inscrit en
    Novembre 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Django

    Informations forums :
    Inscription : Novembre 2016
    Messages : 18
    Points : 35
    Points
    35
    Par défaut
    J'ai trouvé l'erreur !!
    En fait
    #accordion_{{category}}
    donnait des choses comme 'New TEST', ... avec des espaces.
    Du coup en remplaçant par
    #accordion_{{category.id}}
    , cela fonctionne bien mieux !

    Mon problème venait de là ..

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

Discussions similaires

  1. [DOM][JAVASCRIPT]Utilisation de l'xml avec html
    Par Hello_World dans le forum APIs
    Réponses: 9
    Dernier message: 14/10/2010, 14h37
  2. [Article] Effet d'accordéon avec CSS et JavaScript
    Par RideKick dans le forum jQuery
    Réponses: 8
    Dernier message: 26/03/2009, 13h43
  3. chat avec html/javascript
    Par King_T dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 17/05/2008, 15h52
  4. [W3C] Problème validation w3c avec html/javascript
    Par mademoisellem dans le forum Balisage (X)HTML et validation W3C
    Réponses: 22
    Dernier message: 31/01/2008, 16h19
  5. Réponses: 1
    Dernier message: 26/04/2007, 20h51

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