手风琴元素上的切换功能损坏

问题描述

function openAccordion() {
            let activeAccordion = document.getElementsByClassName('accordion active')[0]
            if (activeAccordion) {
                activeAccordion.classList.remove('active')
                activeAccordion.nextElementSibling.style.maxHeight = null;
            }


            let accordion = event.currentTarget
            accordion.classList.toggle('active')
            let panel = accordion.nextElementSibling;
            if (panel.style.maxHeight) {
                panel.style.maxHeight = null;
            } else {
                panel.style.maxHeight = panel.scrollHeight + "px";
            }
        }

上面的代码应该可以切换一个手风琴按钮并且一次只显示一个。但它坏了/被窃听了。

如果没有 activeAccordion 部分,切换工作正常,但打开另一个面板时它不会关闭打开的面板。

使用 activeAccordion 部分,它会在另一个打开时关闭面板,但切换停止工作。

我该如何重组?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)