Add Active State for JQuery Accordion

Add Active State for JQuery Accordion

by Akram kamal

HTML

<div id="accordion">
    <h2>Panel 1</h2>
    <div class="content">
        ....
    </div>
    <h2>Panel 2</h2>
    <div class="content">
        ....
    </div>
    <h2>Panel 3</h2>
    <div class="content">
        ....
    </div>
    <h2>Panel 4</h2>
    <div class="content">
        ....
    </div>
</div>

CSS

#accordion {
 width:90%;
 margin:10px auto;
 border:2px solid white;
 -webkit-box-shadow:0px 1px 3px rgba(0,0,0,0.4);
 -moz-box-shadow:0px 1px 3px rgba(0,0,0,0.4);
 box-shadow:0px 1px 3px rgba(0,0,0,0.4);
}

#accordion h2 {
 cursor:pointer;
 margin:0px 0px;
 padding:7px 15px;
 background-color:black;
 font:bold 11px Verdana,Arial,Sans-Serif;
 color:#e6e6e6;
 text-shadow:0px 1px 0px rgba(0,0,0,0.4);
}

#accordion .content {
 background-color:#ddd;
 padding:10px 15px;
 color:black;
 height:120px;    
}

#accordion h2.active {
 background-color:#4BB347;   
}

JavaScript

$(function() {
    $('#accordion .content').hide();
    $('#accordion h2:first').addClass('active').next().slideDown('slow');
    $('#accordion h2').click(function() {
        if($(this).next().is(':hidden')) {
            $('#accordion h2').removeClass('active').next().slideUp('slow');
            $(this).toggleClass('active').next().slideDown('slow');
        }
    });
});