2015-01-16 33 views
5

Uso la fisarmonica Bootstrap. Voglio che tutto il pannello sia chiuso per impostazione predefinita, ma i miei pannelli vengono espansi.Effettuare fisarmonica chiusa per impostazione predefinita in Bootstrap

Ecco il mio codice:

<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> 

Ho anche usato aria-expanded="false", ma non funziona.

Qual è l'errore?

+1

Leggere la documentazione: la classe .in lo renderà aperto. – Christina

+0

http://getbootstrap.com/javascript/#collapse – Christina

risposta

16

Questa linea qui sembra essere il colpevole:

<div id="collapse${proposal.propID}" class="panel-collapse collapse in" ... 

Se sbarazzarsi di in nella classe, dovrebbe funzionare come avete strutturato. Date un'occhiata a questo esempio per vedere la differenza tra i due pannelli:

<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>

Avviso primo pannello non ha la class=collapsed su di esso è <a> tag, e ha la classe in sul suo <div> tag e inizia APERTO. Il secondo pannello cambia e avvia CLOSED.

EDIT

non può fare una Bootply, continuo a ricevere "Application Error".

+0

Mi sono preso la libertà di convertire il codice in uno snippet di codice e aggiunto le dipendenze Bootstrap e jQuery. Ancora meglio di un Bootho imho :) – ckuijjer

+0

@ckuijjer Grazie, grazie. Suppongo che avrei potuto usare anche un JSFiddle, ma era l'ora di pranzo lol. –

+0

funziona come un fascino. – AdjunctProfessorFalcon