I'm using Bootstrap Accordion. I want all the panel closed by default, but my panels are start expanded.
Here's my code:
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="false">
<c:forEach items="${proposals}" var="proposal" varStatus="serial">
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="heading${proposal.propID}" >
<h4 class="panel-title">
<span class="fa fa-paperclip" aria-hidden="true"></span>
<a class="accordion-toggle collapsed"
data-toggle="collapse" data-parent="#accordion"
href="#collapse${proposal.propID}" aria-expanded="false"
aria-controls="collapse${proposal.propID}">
${proposal.title}
</a>
</h4>
</div>
<div id="collapse${proposal.propID}" class="panel-collapse collapse in"
role="tabpanel" aria-labelledby="heading${proposal.propID}">
${proposal.interest}
</div>
</div>
</c:forEach>
</div>
I also used aria-expanded="false"
, but it doesn't work.
What's the mistake?
Was recently working with Bootstrap 4 and couldn't actually figure out where the "in" class name was(it is mentioned in multiple answers across similar questions).
After a lot of searching, noticed the updated documentation which says :
The collapse plugin utilizes a few classes to handle the heavy lifting:
.collapse hides the content
.collapse.show shows the content
.collapsing is added when the transition starts, and removed when it finishes
So the example code looks something like this now :
<div id="accordion">
<div class="card">
<div class="card-header" id="headingOne">
<h5 class="mb-0">
<button class="btn btn-link" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
Collapsible Group Item #1
</button>
</h5>
</div>
<div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordion">
<div class="card-body">
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
</div>
</div>
</div>
From which, this is important bit :
<div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordion">
Removing the "show" class name makes sure the Bootstrap accordion remains collapsed by default.
Hope this helps!
This line here seems to be the culprit:
<div id="collapse${proposal.propID}" class="panel-collapse collapse in" ...
If you get rid of in
in the class, it should work as you have it structured. Take a look at this example to see the difference between the two panels:
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" rel="stylesheet" />
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="headingOne">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapseOne" aria-expanded="false" aria-controls="collapseOne">
This Panel is Open By Default
</a>
</h4>
</div>
<div id="collapseOne" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOne">
<div class="panel-body">
Open
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="headingTwo">
<h4 class="panel-title">
<a class="collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
This Panel Is Closed By Default
</a>
</h4>
</div>
<div id="collapseTwo" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo">
<div class="panel-body">
Closed
</div>
</div>
</div>
</div>
Notice the first panel doesn't have the class=collapsed
on it's <a>
tag, and has the in
class on it's <div>
tag, and starts OPEN. The second panel switches those, and starts CLOSED.
EDIT
Can't make a Bootply, keep getting "Application Error".
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With