I have a lot of nested bootstrap collapsible elements on a page. As example http://jsfiddle.net/JPgLT/7/
How can i set a link to toggle all elements only within the parent element?
<div class="panel panel-default"> <div class="panel-heading"> <h2 class="panel-title"> <a href="#collapse-764" data-parent="#collapsible-" class="accordion-toggle" data-toggle="collapse">Headline 1</a> </h2> </div> <div id="collapse-764" class="panel-collapse collapse"> <div class="panel-body"> <div class="panel panel-default"> <div class="panel-heading"> <h2 class="csc-firstHeader panel-title"> <a href="#collapse-765" data-parent="#collapsible-764" class="accordion-toggle" data-toggle="collapse">Headline 1.1</a> </h2> </div> <div id="collapse-765" class="panel-collapse collapse"> <div class="panel-body"> <p>Text 1.1</p> </div> </div> </div> <div class="panel panel-default"> <div class="panel-heading"> <h2 class="panel-title"> <a href="#collapse-766" data-parent="#collapsible-764" class="accordion-toggle" data-toggle="collapse">Headline 1.2</a> </h2> </div> <div id="collapse-766" class="panel-collapse collapse"> <div class="panel-body"> <p>Text 1.2</p> </div> </div> </div> </div> </div> </div>
Advertisement
Answer
You could add a special class closeall
to the buttons, and then toggle the collapse state using jQuery..
$('.closeall').click(function(){ $(this).parents('.panel-heading') // find the parent heading element .next('.panel-collapse') // find the next collapse element .collapse('show') // make sure it's open .find('.panel-collapse') // find inner collapse elements .collapse('toggle'); // toggle their state });
Bootstrap 3 Demo: https://codeply.com/p/g0vquJl0Xn
Related questions
bootstrap 3 collapse(‘hide’) opens all collapsibles?