如何使用bootstrap 3或4一次显示一个折叠

时间:2017-11-03 17:10:54

标签: javascript twitter-bootstrap bootstrap-4

我正在使用Bootstrap 4从头开始构建一个网站,并且遇到了一个对于经验丰富的Bootstrap开发人员来说很容易的问题。我发现并想出了一个解决方案,如何使用原始Javascript代码一次折叠一个元素,但我如何使用Bootstrap 4实现这一点,还是应该坚持这种类型的解决方案?我会感谢任何提示,因为我尝试了数据切换/数据目标/并且似乎我错过了一些让它正确发生的事情。在JS语法方面不是很强,但对它有一个了解。请参阅示例here

HTML:

<table>
   <tr>
      <td>
         <div style="border: 1px solid blue; background-color: #99CCFF; padding: 5px;">
            <a id="myHeader1" href="javascript:showonlyone('newboxes1');" >collapse</a>
         </div>
         <div class="newboxes" id="newboxes1" style="border: 1px solid black; background-color: #CCCCCC; display: block;padding: 5px;">Div #1</div>
      </td>
      <td>
         <div style="border: 1px solid blue; background-color: #99CCFF; padding: 5px;">
            <a id="myHeader2" href="javascript:showonlyone('newboxes2');" >collapse</a>
         </div>
         <div class="newboxes" id="newboxes2" style="border: 1px solid black; background-color: #CCCCCC; display: none;padding: 5px;">Div #2</div>
      </td>
      <td>
         <div style="border: 1px solid blue; background-color: #99CCFF; padding: 5px;">
            <a id="myHeader3" href="javascript:showonlyone('newboxes3');" >collapse</a>
         </div>
         <div class="newboxes" id="newboxes3" style="border: 1px solid black; background-color: #CCCCCC; display: none;padding: 5px;">Div #3</div>
      </td>
   </tr>
</table>

JS:

function showonlyone(thechosenone) {
      var newboxes = document.getElementsByTagName("div");
            for(var x=0; x<newboxes.length; x++) {
                  name = newboxes[x].getAttribute("class");
                  if (name == 'newboxes') {
                        if (newboxes[x].id == thechosenone) {
                        newboxes[x].style.display = 'block';
                  }
                  else {
                        newboxes[x].style.display = 'none';
                  }
            }
      }
}

1 个答案:

答案 0 :(得分:0)