2 votes

Spotfire Accordion Text Area - ne peut pas rouvrir les panneaux après les avoir réduits

J'utilise une zone de texte dans Spotfire pour créer un accordéon pour mes filtres afin de libérer de l'espace. Mon code ci-dessous va basculer pour ouvrir et fermer le panneau, et plusieurs à la fois. Cependant, je ne peux ouvrir et fermer chaque panneau qu'une seule fois et il ne me permet pas d'ouvrir à nouveau un panneau tant que je n'ai pas modifié le code html et que je ne l'ai pas sauvegardé.

J'essaie également de faire apparaître un signe moins (-) lorsque le panneau est ouvert et de le transformer en signe plus lorsqu'il est refermé.

<!DOCTYPE html>
<html>

<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <style>
    .accordion {
      background-color: #eee;
      color: #444;
      cursor: pointer;
      padding: 18px;
      width: 100%;
      border: none;
      text-align: left;
      outline: none;
      font-size: 15px;
      transition: 0.4s;
    }

    .active,
    .accordion:hover {
      background-color: #ccc;
    }

    .accordion:after {
      content: '\002B';
      color: #777;
      font-weight: bold;
      float: right;
      margin-left: 5px;
    }

    .active:after {
      content: "\2796";
    }

    .panel {
      padding: 0 18px;
      background-color: white;
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.2s ease-out;
    }
  </style>
</head>

<body>

  <button class="accordion" style="font-size:medium" ;><b>Department Roles</b></button>
  <div class="panel">
    <p>
      <SpotfireControl id="dca19548a0154f4582d1cc8c033f3ea6" />
    </p>
  </div>

  <button class="accordion" style="font-size:medium" ;><b>Studies with Critical Activities</b></button>
  <div class="panel">
    <p>
      <SpotfireControl id="228b526015ad4266946b65cad0a5d2dd" />
    </p>
  </div>

  <button class="accordion" style="font-size:medium" ;><b>Study Status</b></button>
  <div class="panel">
    <p>
      <SpotfireControl id="7a331814482e46bfb455f1cb06cdd569" />
    </p>
  </div>

  <button class="accordion" style="font-size:medium" ;><b>Site</b></button>
  <div class="panel">
    <p>
      <SpotfireControl id="dec00d7ee27244dc8f803190d2684b94" />
    </p>
  </div>

  <button class="accordion" style="font-size:medium" ;><b>Outsourced</b></button>
  <div class="panel">
    <p>
      <SpotfireControl id="44a7a79c5d1a497cb120ffe40b2a91cc" />
    </p>
  </div>

  <button class="accordion" style="font-size:medium" ;><b>Planned Start</b></button>
  <div class="panel">
    <p>
      <SpotfireControl id="39f882ba6a8f47a4b4257eff761d93e3" />
    </p>
  </div>

  <button class="accordion" style="font-size:medium" ;><b>Actual Start</b></button>
  <div class="panel">
    <p>
      <SpotfireControl id="f4fce188fc424d5cabc040b8eac977dd" />
    </p>
  </div>

  <button class="accordion" style="font-size:medium" ;><b>Study Path</b></button>
  <div class="panel">
    <p>
      <SpotfireControl id="c294b790054a4011aadaa89ee7ca36f1" />
    </p>
  </div>

  <script>
    var acc = document.getElementsByClassName("accordion");
    var i;
    for (i = 0; i < acc.length; i++) {
      acc[i].addEventListener("click", function() {
        this.classList.toggle("active");
        var panel = this.nextElementSibling;
        if (panel.style.maxHeight) {
          panel.style.maxHeight = null;
        } else {
          panel.style.maxHeight = panel.scrollHeight + "px";
        }
      });
    }
  </script>

</body>

</html>

1voto

Tyger Guzman Points 718

Vous devez ajouter le JavaScript à la section Js de la zone de texte.

De plus, si l'assainissement html est activé, les balises ne fonctionneront pas non plus et il faudra les ajouter à l'aide des J dans la zone de texte.

https://datashoptalk.com/unscrambling-spotfire-text-area/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X