web-dev-qa-db-ja.com

Twitter Bootstrapモーダル-IsShown

こんにちはフェローSOユーザー、

モーダルボックスに自動入力するときにこの問題が発生しました。

すでにコンテンツが含まれていることもあるので、リクエストごとに非表示/表示を試してみました。ただし、表示は非表示機能が実行される前に起動されるため、スクリプトが壊れます。

「hidden」にバインドすることはできません。これは、初めての場合、ブートストラップからhidden関数を起動しないためです。

Modal( 'true')を使用すると、オブジェクトにisShown要素があることがわかりますが、アクセス方法を知っている人はいますか?

Console.logはこれを示しています:

$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()}
19

Twitterへの回答Bootstrap 3:

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

または

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

答えは:

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

オンbootstrap 3.0.x

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

または

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

modal_idは、モーダルのIDです。

3
Smith

Bootstrapバージョン2および3ソリューションそしてdataをヒットしたくない(名前はすでに一度変更されているように見えるため)...

$(element).hasClass('in')(「フェードイン」または「表示」されます。ブール値を返すというプラス)

または

"false" === $(element).attr('aria-hidden')(つまり、アリアは非表示または表示されます。"true"この場合は非表示になります。)

source from bootstrap 3.3.1 here :を参照してください。

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

繰り返しますが、そのコードは3.3.1からのものです。これは2.1.0でも機能することを確認できます。この場合、アヒルのスニッフィング[原文のまま]の方がおそらく優れています。

1
ruffin

Bootstrap 4:の回答

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

関数として:

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