Spotfire手风琴文本区域-折叠后无法重新打开面板

问题描述 投票:0回答:1

我正在使用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>
javascript html css accordion spotfire
1个回答
0
投票

您可能希望将JavaScript添加到文本区域的Js部分。

此外,如果启用了html卫生功能,则这些标签也将不起作用,并且必须在文本区域中使用J追加。

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

© www.soinside.com 2019 - 2024. All rights reserved.