2015-10-13 7 views
13

Se ho un crollo di bootstrap, come posso determinare da un evento click in caso di apertura o chiusura del collasso?Come determinare se una compressione di bootstrap si sta aprendo o chiudendo?

Ecco il mio evento click o forse c'è un modo migliore per utilizzare un evento click?

$(document).on("click", "a.register-student-link", function() { 
    // do some stuff to check if opening or closing 
} 

<div> 
 
    <a [email protected] class="register-student-link" data-toggle="collapse" [email protected] aria-expanded="false" aria-controls="collapseExample"> 
 
                Register Student 
 
               </a> 
 
</div>

risposta

2

È possibile guardare l'evento hidden.bs.collapse

vedere violino: http://jsfiddle.net/kyeuvx1d/

+0

bootstrap crollo 'doesn t hanno questo – user1186050

+0

Ecco un altro post con una risposta simlilar: http://stackoverflow.com/questions/18147338/twitter-bootstrap-3-0-icon-change-on-collapse –

14

Prova:

$('#collapseDiv').on('shown.bs.collapse', function() { 
 
    console.log("Opened") 
 
}); 
 

 
$('#collapseDiv').on('hidden.bs.collapse', function() { 
 
    console.log("Closed") 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/> 
 
<div> 
 
    <a [email protected] class="register-student-link" data-toggle="collapse" href="#collapseDiv" aria-expanded="false" aria-controls="collapseExample">Register Student</a> 
 
</div> 
 

 
<div class="collapse" id="collapseDiv">This is the collapsible content!</div>

(basato su https://stackoverflow.com/a/18147817/2033574 (Kevin menzionato) e http://www.bootply.com/73101)

13

Bootstrap utilizza l'attributo aria-espanso per mostrare vero o falso se la regione è compressa oppure no.

var isExpanded = $(collapsableRegion).attr("aria-expanded"); 
11

Avevo bisogno di un modo per determinare se l'elemento era collassato PRIMA che effettivamente collassasse. Mentre gli ascoltatori di eventi si attivano solo in seguito.

//Will return true if uncollapsed 
$('#collapseDiv').hasClass('in'); 

//Will return true if in the process of collapsing 
$('#collapseDiv').hasClass('collapsing'); 

//Will return true if collapsed 
$('#collapseDiv').hasClass('collapse'); 
Problemi correlati