bootstrap.js Accordion Collapse / Expand

后端 未结 8 1092
北恋
北恋 2020-12-13 13:24

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 <

相关标签:
8条回答
  • 2020-12-13 13:55

    This works for accordions in Bootstrap 3:

    var selector = $('.panel-heading a[data-toggle="collapse"]');
    selector.on('click',function() {
      var self = this;
      if ($(this).hasClass('collapsed')) {
        $.each(selector, function(key, value) {
          if (!$(value).hasClass('collapsed') && value != self) {
            $(value).trigger('click');
          }
        });
      }
    });
    

    I'm simulating a click of the other accordion tabs with $(value).trigger('click');. According to the API you should just be able to use the .collapse() method i.e. $(value).collapse('hide');. But it doesn't work for some reason so trigger it is...

    0 讨论(0)
  • 2020-12-13 13:56

    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');
    
    0 讨论(0)
提交回复
热议问题