2014-07-25 15 views
12

Kann mir bitte jemand sagen, wie Bootstrap 3.0 Modal Status zu überprüfen, ist es offen oder geschlossen mit jQuery oder Javascript. Ich habe folgenden Code verwendet, aber es funktioniert, wenn Sie ein Modal für eine Zeit geöffnet haben, sonst gibt Daten undefined Fehler.Bootstrap 3 Modal: Wie man überprüft, ob Modal offen oder geschlossen ist mit jquery/javascript

if($('#addMemberModal').data('bs.modal').isShown == true){ 
console.log("Modal is open"); 
} 
+0

überprüfen können aus http://stackoverflow.com/ a/21341587/1781706, sieht aus wie diese Antwort herausgefunden hat, wie man diesen undefinierten Fehler umgehen kann. – jamesthollowell

Antwort

29

Sie können auch direkt jQuery wie folgt verwenden:

$('#myModal').is(':visible'); 
3

try Prüfung:

if($("#addMemberModal").data('modal') && $("#addMemberModal").data('modal').isShown) { 
    console.log("Modal is open"); 
} 

oder

if($('#addMemberModal').hasClass('in')) { 
    console.log("Modal is open"); 
} 
17

Sie auf ihre Seite verweisen http://getbootstrap.com/javascript/#modals

$('#myModal').on('hidden.bs.modal', function (e) { 
    // do something... 
}) 

show.bs.modal
Dieses Ereignis wird sofort ausgelöst, wenn die show-Instanzmethode aufgerufen wird. Wenn das angeklickte Element durch einen Klick verursacht wird, steht es als relatedTarget -Eigenschaft des Ereignisses zur Verfügung.

shown.bs.modal
Dieses Ereignis wird ausgelöst, wenn die modale für den Benutzer sichtbar gemacht wurde (wird CSS-Übergänge warten abzuschließen). Wenn das angeklickte Element durch einen Klick verursacht wird, steht es als relatedTarget -Eigenschaft des Ereignisses zur Verfügung.

hide.bs.modal
Dieses Ereignis sofort ausgelöst, wenn die Haut Instanz-Methode aufgerufen wurde.

hidden.bs.modal Dieses Ereignis wird ausgelöst, wenn die modale wurde von dem Benutzer verborgen fertig zu werden (wird warten Transitionen CSS abgeschlossen). loaded.bs.modal Dieses Ereignis wird ausgelöst, wenn das Modal Inhalte mithilfe der Remote-Option geladen hat.

+2

Sie können auch nach der css-Klasse $ ('.modal') suchen. HasClass ('in') – darronz

0

, wenn die modale in einer Form von Ajax geladen wird geöffnet Sie

$(document).on('hidden.bs.modal', '#photoModal', function() { 
    cancel_camera(); 
    document.getElementById('PhotoPerson').innerHTML = '<img src="' + photoPerson + '"/>'; 
});* 
Verwandte Themen