Jquery手风琴自动关闭

时间:2015-07-02 14:27:04

标签: javascript jquery html css

我正在为网站创建移动手风琴导航。我有一个基本的手风琴设置,我遇到的问题是,当我打开一个标签时,我希望其他标签自动关闭,这样一次只能打开一个标签。这是代码

$(document).ready(function() {
// Collapsible Menu
function accordion(trigger) {
    //variables
    var $button = $(trigger),//trigger firing the event
        visible = true;//flag for wayfinding

        $button.hover().css({'cursor': 'pointer'});

    //event
    $button.click(function() {
        //conditional check
        if ( ! visible ) {
            $button.removeClass('active');
            $('.panel-title .icon').html('⊕');


            $(this).next().slideUp('slow',function() {
                $(this).addClass('visuallyhidden').slideDown(0);
                $('.panel-content').attr( 'aria-expanded','false' );
            });
        }else {
            $button.addClass('active');
            $('.panel-title.active .icon').html('⊗');

            $(this).next().slideUp(0,function() {
                $('.panel-content').attr( 'aria-expanded','true' );
                $(this).removeClass('visuallyhidden').slideDown('slow');
            });
        }

        //flag dude
        visible = !visible;
        return false
    });
}

//call to widget trigger1
accordion('#trigger1');
//call to widget trigger2
accordion('#trigger2');
//call to widget trigger3
accordion('#trigger3');

Codepen链接 - http://codepen.io/Ahhmmogh/pen/WvMMZN

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

这是一个有效的代码:http://codepen.io/alezuc/pen/OVQvMV

我添加了对面板可见性和“有效”标题

的检查
if ( $(this).find('.panel-content').css('display') == 'none' ) {...}
if ( $(this).hasClass('active') ) {...}