Javascript jQuery accordion的逻辑,一次只能打开一个项目,但单击打开的项目也会关闭

Javascript jQuery accordion的逻辑,一次只能打开一个项目,但单击打开的项目也会关闭,javascript,jquery,Javascript,Jquery,我正在构建一个非常基本的jQuery accordion,我知道UI中有accordion,我不想使用它 我把整个事情都做得很好,但有一个特定的部分我还是停留在逻辑上 一次只能打开一个手风琴项目。因此,当用户单击时,我会关闭所有手风琴,不管单击的是什么,然后打开单击的手风琴 这一切正常,除了我失踪时,当前,打开的项目被单击,它应该关闭,所以没有任何项目是开放的 我无法理解其逻辑,因为当单击当前项时,如果其数据状态为关闭,则当前将其设置为打开,但这似乎不起作用 这是我的手风琴密码: $(docum

我正在构建一个非常基本的jQuery accordion,我知道UI中有accordion,我不想使用它

我把整个事情都做得很好,但有一个特定的部分我还是停留在逻辑上

一次只能打开一个手风琴项目。因此,当用户单击时,我会关闭所有手风琴,不管单击的是什么,然后打开单击的手风琴

这一切正常,除了我失踪时,当前,打开的项目被单击,它应该关闭,所以没有任何项目是开放的

我无法理解其逻辑,因为当单击当前项时,如果其数据状态为关闭,则当前将其设置为打开,但这似乎不起作用

这是我的手风琴密码:

$(document).ready(function () {
    $('.accordian-item').click(function () {
        // close everything first
        $(".accordian-text").attr('data-status', 'closed');
        $("h3").css('background-image', 'url(arrow-down.png)');
        $(".accordian-text").css("height", "0").css('border-bottom', 'none');

        console.log('clicked!');
        var status = $(this).children(".accordian-text").attr('data-status');
        if (status == 'closed') {
            // open it
            $(this).children(".accordian-text").attr('data-status', 'open');
            $(this).children("h3").css('background-image', 'url(arrow-up.png)');
            $(this).children(".accordian-text").css("height", "auto").css('border-bottom', '1px solid #c7c5c5');
        } else {
            // close it
            $(this).children(".accordian-text").attr('data-status', 'closed');
            $(this).children("h3").css('background-image', 'url(arrow-down.png)');
            $(this).children(".accordian-text").css("height", "0").css('border-bottom', 'none');
        }
    });
});

在检查状态之前,您将关闭打开的面板。移动

var status = $(this).children(".accordian-text").attr('data-status');
函数的顶部,使其获得打开状态,然后if逻辑将转到else