it-swarm.com.de

Twitter Bootstrap Modal - Wird angezeigt

Hallo SO Benutzer,

Habe dieses Problem, bei dem ich eine modale Box automatisch befülle.

Manchmal hat es bereits Inhalt, also habe ich versucht, bei jeder Anfrage ein Verstecken/Zeigen durchzuführen. Die Show wird jedoch ausgelöst, bevor die Ausblendfunktion ausgeführt wird, sodass das Skript unterbrochen wird.

Ich kann mich nicht an "hidden" binden, denn wenn es das erste Mal ist, wird die versteckte Funktion von bootstrap nicht ausgelöst.

Mit modal ('true') kann ich sehen, dass das Objekt ein isShown-Element hat, aber weiß jemand, wie ich darauf zugreifen kann?

Das console.log zeigt dies:

$backdrop
    [div.modal-backdrop]

$element
    [div#modal-from-dom.modal]

isShown
    true

settings
    Object { backdrop="static", keyboard=true, show=false}

hide
    function()

show
    function()

toggle
    function()

__proto__
    Object { toggle=function(), show=function(), hide=function()}
18

Antwort für Twitter Bootstrap 3:

$("element").data()['bs.modal'].isShown

oder

$("element").data('bs.modal').isShown
25
dr.dimitru

Die Antwort ist:

$("element").data('modal').isShown
10

Auf Bootstrap 3.0.x

  $('#modal_Id').data().modal.isShown

oder

  $('#modal_Id').data('modal').isShown

modal_id ist die ID Ihres Modals

3
Smith

Wenn Sie eine Bootstrap-Lösung der Version 2 und 3 möchten und die Variable data nicht treffen möchten (da der Name anscheinend bereits einmal geändert wurde) ...

$(element).hasClass('in') (würde "eingeblendet" oder "sichtbar" sein; ein Plus, dass es einen Booleschen Wert zurückgibt)

oder

"false" === $(element).attr('aria-hidden') (das ist also auch aria-hidden oder visible. "true" für hidden in diesem Fall)

Siehe Quelle von Bootstrap 3.3.1 hier :

this.backdrop(function () {
...
  that.$element
    .addClass('in')
    .attr('aria-hidden', false)
...

Auch dieser Code stammt aus 3.3.1. Kann bestätigen, dass dies auch in 2.1.0 funktioniert. Das Schnüffeln von Enten ist in diesem Fall wahrscheinlich besser.

1
ruffin

Antwort für Bootstrap 4:

$("element").data('bs.modal')._isShown

Als eine Funktion:

function isModalShown(modal) {
    var modalIsShown = (modal.data('bs.modal') || {})._isShown;
    return !(typeof modalIsShown === 'undefined' || !modalIsShown);
}
0
Tim S