[英]Accordion with pure javascript - expanding does not follow by group
I am trying to create an accordian and only expand by group during onclick function.我正在尝试创建一个手风琴,并且仅在 onclick function 期间按组扩展。 So when click on Level 2(1), only div for Level 3(1) is allowed be to expanded.
所以当点击Level 2(1)时,只允许展开Level 3(1)的div。 You may take a look at my snippet for clearer understanding.
您可以查看我的代码片段以获得更清晰的理解。 Currently it only worked on Level 2(1).
目前它仅适用于 2(1) 级。
This is the flow I want:这是我想要的流程:
Click Main Level - Show all the Level 2单击主级别 - 显示所有级别 2
Click Level 2(1) - Show all Level 3(1) (if any)单击 Level 2(1) - 显示所有 Level 3(1)(如果有)
Click Level 2(2) - Show all Level 3(2) (if any) and etc....单击 Level 2(2) - 显示所有 Level 3(2)(如果有)等......
This is what I want for the output:这就是我想要的 output:
function toggle(item) { item.classList.toggle("active"); let panel = item.nextElementSibling; if (panel.== null) { if (panel.style.display === "block") { panel.style;display = "none". } else { panel.style;display = "block"; } } return false; }
.accordion, .subpanel-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; display: flex; }.active, .accordion:hover { background-color: #ccc; }.panelaccordion { padding: 0 18px; display: none; background-color: white; overflow: hidden; }.text-accordion { display: flex; align-items: center; justify-content: flex-start; flex: 50%; }.button-accordion { display: flex; align-items: center; justify-content: flex-end; flex: 50%; }
<div class="accordion" id="main-1" onclick="toggle(this);">Level 1</div> <div class="panelaccordion level2"> <div class="accordion" id="sub-1" onclick="toggle(this);"> <div class="text-accordion">Level 2(1)</div> <div class="button-accordion" onclick="getid(\'sub-1\');">Click level 2(1)</div> </div> <div class="subpanel-accordion" id="subpanel-1"> <div class="text-accordion">Level 3(1)</div> <div class="button-accordion" onclick="getidsub(\'subpanel-1\');">Click level 3(1)</div> </div> <div class="accordion" id="sub-2"> <div class="text-accordion">Level 2(2)</div> <div class="button-accordion" onclick="getid(\'sub-2\');">Click level 2(2)</div> </div> <div class="subpanel-accordion" id="subpanel-2"> <div class="text-accordion">Level 3(2)</div> <div class="button-accordion" onclick="getidsub(\'subpanel-2\');">Click level 3(2)</div> </div> <div class="accordion" id="sub-3"> <div class="text-accordion">Level 2(3)</div> <div class="button-accordion" onclick="getid(\'sub-2\');">Click level 2(3)</div> </div> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.