Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript允许我折叠扩展的手风琴_Javascript_Html - Fatal编程技术网

javascript允许我折叠扩展的手风琴

javascript允许我折叠扩展的手风琴,javascript,html,Javascript,Html,我有一个侧面导航栏,由多个手风琴组成,展开后会显示更多的导航按钮。我有一点JavaScript,一次只能扩展一个手风琴。但是,如果我单击一个手风琴来展开它,当我单击同一个手风琴时,它将保持打开状态 我想得到它,这样我就可以展开和折叠手风琴,而不必展开另一个手风琴 JavaScript: var acc = document.getElementsByClassName("nav-link-bottom-main"); var i; var last; for (i = 0; i < acc

我有一个侧面导航栏,由多个手风琴组成,展开后会显示更多的导航按钮。我有一点JavaScript,一次只能扩展一个手风琴。但是,如果我单击一个手风琴来展开它,当我单击同一个手风琴时,它将保持打开状态

我想得到它,这样我就可以展开和折叠手风琴,而不必展开另一个手风琴

JavaScript:

var acc = document.getElementsByClassName("nav-link-bottom-main");
var i;
var last;
for (i = 0; i < acc.length; i++) {
    acc[i].onclick = function() {
        if (last) {
            last.nextElementSibling.classList.toggle("show");
        }
        this.nextElementSibling.classList.toggle("show");
        last = this;
    }
}
var acc=document.getElementsByClassName(“导航链接底部主”);
var i;
var last;
对于(i=0;i
html:


如果(last)
条件为真且与
元素相同,则在同一元素上切换两次
显示
类,因此可能这就是它保持打开状态的原因(实际上它同时关闭并再次打开)

因此,请尝试检查您是否没有像这样切换相同的元素:

if (last && last != this) {
    last.nextElementSibling.classList.toggle("show");
}
this.nextElementSibling.classList.toggle("show");
我希望它能有所帮助。

使用.toggle()而不是.toggle(“show”)
if (last && last != this) {
    last.nextElementSibling.classList.toggle("show");
}
this.nextElementSibling.classList.toggle("show");