Alex Rivera | Logout

bootstrap.js Accordion Collapse / Expand

Asked 2012-10-02T21:06:34.060
37

I'm trying to create previous / next buttons on each accordion body.

I can't figure out a way to collapse/expand a certain section. I tried removing the class in from the accordion-body but that does not seem to collapse.

$(".accordion-body").each(function(){
    if($(this).hasClass("in")) {
        $(this).removeClass("in");
    }
});

Also whenever or whatever I use the .collapse method on, I get a JavaScript error saying that object has no method collapse.

Edit
Report

1 Answer

73

The in class is just an indicator that a section is open. The Javascript module applies the same inline styles as .in does, so removing the class is insufficient.

You need to use the module's API to programmatically interact with the accordion, via the .collapse() method:

$('.accordion-body').each(function(){
    if ($(this).hasClass('in')) {
        $(this).collapse('toggle');
    }
});

Or, you can condense this down to:

$('.accordion-body.in').collapse('toggle');

If you want only to collapse any open sections:

$('.accordion-body').collapse('hide');

If you want only to expanded any closed sections:

$('.accordion-body').collapse('show');
answered 2012-10-02T21:36:34.870

Your Answer