Bootstrap Collapse - развернуть все

Я реализовал Bootstrap 3 Collapse. Клиент хочет, чтобы все целевые блоки расширялись при щелчке по любой из ссылок заголовка. Я пытался реализовать модифицированную версиюэтот ответ, но не могу заставить его работать.

Как я могу получить все целевые блоки, чтобы развернуть / свернуть, когда щелкнет любой из них?

Это разметка:

<div class="panel-group" id="accordion">
    <div class="panel panel-default">
        <div class="panel-heading">
            <h6 class="panel-title"><a data-toggle="collapse" data-parent="#accordion" href="#collapse{entry_id}">{title}</a></h6>
        </div>
    </div>
    <div id="collapse{entry_id}" class="panel-collapse collapse">
      <div class="panel-body">
        {technology_body}
      </div>
   </div>
</div>

И это JS, который я пытался:

$('#accordion').on('click', function() {
    if($('.collapse:not(.in)')) {
         $.collapse("toggle");
    }
});
 Seth McClaine27 февр. 2014 г., 02:56
Пример JSFiddle?

Ответы на вопрос(6)

Решение Вопроса

Я получил некоторую помощь в автономном режиме по этому вопросу. Используемый скрипт

$('#accordion .panel-default').on('click', function () {
    $('#accordion .panel-collapse').collapse('toggle');
});

и это пример JSFiddlehttp://jsfiddle.net/gtowle/Vq6gt/1/

 Yasar Arafath17 июл. 2017 г., 12:50
Как справиться в машинописи для угловых
 Philipp Zedler28 окт. 2014 г., 21:34
@jagmohan Чтобы решить вашу проблему, просто используйте «show» или «hide» вместо «toggle» в качестве аргументов функции collapse (), как описано вдокументы.
 juliet19 февр. 2015 г., 21:16
Этот ответ в сочетании с комментарием Филиппа помог мне понять мое решение. Спасибо!
 jagmohan29 окт. 2014 г., 05:27
Спасибо Филипп. Я смог понять это.
 jagmohan12 окт. 2014 г., 11:57
Это переключает состояние складных элементов. В случае, если у нас есть расширенные элементы, и я хочу расширить все, это сворачивает расширенный и расширяет другие. Есть идеи, чтобы это исправить?

Попробуйте это, это поможет вам.

$('.panel-collapse').removeData('bs.collapse')
    .collapse({parent:false, toggle:false})
    .collapse('show')
    .removeData('bs.collapse')
    .collapse({parent:'#accordion', toggle:false});

Догадаться. когда вы хотите свернуть свои элементы - вам нужно указатьсодержание div вашего #accordion, в вашем случае (а также и в моем) класс.collapse.

$('#accordion .collapse').collapse('show');
 hktang26 окт. 2016 г., 06:05
Благодарю. Это работает отлично.
$('#accordion .collapse').addClass("in")
 Nico Haase14 февр. 2019 г., 12:19
Пожалуйста, добавьте некоторые пояснения к вашему коду. Как это срабатывает при нажатии на элемент?

Мне нужно было свернуть / развернуть ссылки, чтобы щелкнуть. Вот мое решение:

    <a id="acollapse" href="javascript:jQuery('div .panel-collapse').collapse('hide'); jQuery('#acollapse').hide();jQuery('#aexpand').show();">Collapse All</a>';

    <a id="aexpand" href="javascript:jQuery('div .panel-collapse').collapse('show'); jQuery('#aexpand').hide(); jQuery('#acollapse').show();" style="display: none;">Expand All</a>

У нас есть способ решить это.

<div class="AccordionStyle panel-group" id="Security_accordion">
<div class="ShowAllTabs"><a>SHOW ALL <i class="fa fa-chevron-down"></i></a></div>
    <!--= collapse-start =-->
    <div class="panel">
        <div class="panel-heading">
        <div href="#SecurityServices" data-toggle="collapse" data-parent="#Security_accordion" class="panel-title expand collapsed">
            <div class="right-arrow pull-right icon_wrap"><i class="fa fa-chevron-down"></i></div>
            <a>Security Services</a>
        </div>
        </div>

        <div id="SecurityServices" class="panel-collapse collapse">
        <div class="panel-body">
            contents will go here...
        </div>
        </div>
    </div>
    <!--= END! =-->

</div>

<script>
$('.panel-group .ShowAllTabs').click(function(){
    $(this).toggleClass('show_all_panels');

    if($(this).hasClass('show_all_panels'))
    {
        $(this).closest('.panel-group').find('.panel-title').removeClass('collapsed').prop('aria-expanded',"true").attr('aria-expanded',"true");
        $(this).closest('.panel-group').find('.panel-collapse').addClass('in').prop('aria-expanded',"true").attr('aria-expanded',"true").css("height","auto");
    }else
    {
        $(this).closest('.panel-group').find('.panel-title').addClass('collapsed').prop('aria-expanded',"false").attr('aria-expanded',"false");
        $(this).closest('.panel-group').find('.panel-collapse').removeClass('in').prop('aria-expanded',"false").attr('aria-expanded',"false");
    }
    setTimeout(function(){$( window ).resize();},200);
});
</script>

Ваш ответ на вопрос