javascript Accordeon标签关闭

时间:2018-09-25 10:43:26

标签: javascript javascript-events tabs

您好,我使用了我想继续制作的手风琴。如果我选择另一个选项卡,以便只打开一个选项卡,我想关闭所有打开的选项卡。我是javascript的新手,正努力做到正确。

这是我的js代码:

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";
    }
  });
}

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

选项卡在单击时打开,然后再次关闭..当另一个选项卡打开时,我想关闭打开的选项卡..只有一个选项卡应该保持打开状态,谢谢:) – Mr.Murphy

好的...虽然我不确定这是什么,但看起来像:

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";
    }

});

您正在将onclick添加到手风琴,但是然后您正在使用this,它应该关闭当前单击的元素。相反,您应该创建一个数组并将所有打开的选项卡附加到该数组,然后在打开一个新选项卡时将其关闭。

希望有帮助,伊莱亚斯=)