手风琴切换打开/关闭

时间:2014-05-02 09:45:34

标签: javascript jquery

很抱歉,如果这已经被问了很多次,但是我的手风琴有效,但我需要它来切换当前打开的元素。就目前而言,它不会关闭当前打开的元素。

查看我的codepen

Javasscript:

function accordion() {
    var allPanels = $('.accordion > dd').hide();

    $('.accordion > dt > a').on('click', function(e) {
        e.preventDefault();

        allPanels.slideUp(100);
        $(this).parent().next().slideDown(100);
        return false;
    });
}

accordion();

2 个答案:

答案 0 :(得分:1)

您应该检查标签是否已经打开。如果它已打开并单击标题,则滑动。如果不是那么就像你已经做的那样滑动。

要检查元素是否可见,您可以使用.is(":visible")

您可以使用:

 if($(this).parent().next().is(":visible") ){

            $(this).parent().next().slideUp(100);
    }
    else{
            $(this).parent().next().slideDown(100);
    }

DEMO

答案 1 :(得分:0)

你可以这样做

$(this).parent().next().slideToggle(100);      
allPanels.not($(this).parent().next()).slideUp(100);

DEMO