Текстовая область Spotfire Accordion - не может открыть панели после свертывания - PullRequest
2 голосов
/ 06 февраля 2020

Я использую текстовую область в Spotfire, чтобы создать аккордеон для своих фильтров, чтобы освободить место. Мой код ниже будет переключаться, чтобы открывать и закрывать панель, и несколько одновременно. Однако я могу открывать и закрывать каждую панель только один раз, и тогда она не позволяет мне снова открывать панель, пока я не отредактирую html и не сохраню ее.

Кроме того, я пытаюсь получить знак минус (-), который отображается при открытии панели, и снова превращается в плюс при закрытии.

<!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>

1 Ответ

1 голос
/ 08 февраля 2020

Вы хотели бы добавить JavaScript в раздел Js текстовой области.

Также, если включена очистка html, теги также не будут работать и должны будут добавляться с использованием Js в текстовой области.

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

...