【发布时间】:2016-10-11 05:44:53
【问题描述】:
我有一架手风琴,效果非常好,它在网站上看起来不错,并且可以正常工作。不过,我正在尝试为其添加更多 JavaScript 功能,使其看起来更专业。
目前,手风琴允许您一次打开多个面板,即如果我打开一个选项卡,然后打开另一个选项卡,两个选项卡将同时打开。关闭这些面板的唯一方法是重新单击标题。
我想要的是一些 JavaScript 代码,它可以防止同时打开多个选项卡,所以如果我点击一个新面板,它应该首先关闭现有的打开面板。这是我的手风琴 HTML 代码:
<div class="accordion"><b>Heading 1</b></div>
<div class="panel">
<p class="text-light">Text 1</p>
</div>
<div class="accordion"><b>Heading 2</b></div>
<div class="panel">
<p class="text-light">Text 2</p>
</div>
这是我在一个单独的 JavaScript 文件中的 JavaScript 代码,目前允许同时打开多个选项卡
var acc = document.getElementsByClassName("accordion");
var i;
for (i = 0; i < acc.length; i++) {
acc[i].onclick = function() {
this.classList.toggle("active");
this.nextElementSibling.classList.toggle("show");
}
}
不确定是否需要所有 CSS,但这里是用于显示面板的 CSS
div.panel.show {
display: block !important;
}
希望有人可以提供帮助!提前致谢!
【问题讨论】:
-
只需遍历所有这些,将它们设置为
inactive和hide它们。然后你activate和display被选中。 -
@NalinAggarwal OP 说他在哪里使用 Bootstrap?
标签: javascript html accordion