it-roy-ru.com

Щебетать Модальные загрузки - IsShown

Здравствуйте, друзья SO,

Получил эту проблему, где я автоматически заполняю модальное поле.

Иногда в нем уже есть контент, поэтому я пытался делать скрытие/показывать каждый запрос. Но шоу запускается до того, как будет выполнена функция скрытия, поэтому он нарушает сценарий.

Я не могу сделать привязку к «скрытому», потому что, если это в первый раз - он не будет запускать скрытую функцию из начальной загрузки.

Используя 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()}
18
Marco Johannesen

Ответ для Twitter Bootstrap 3:

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

или же

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

Ответ:

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

На начальной загрузке 3.0.x

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

или же 

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

modal_id это идентификатор вашего модального

3
Smith

Если вам нужно решение Bootstrap версии 2 и 3, и вы не хотите использовать data (так как похоже, что имя уже изменилось один раз) ...

$(element).hasClass('in') (будет "блеклым" или "видимым"; плюс, что он возвращает логическое значение) 

или же 

"false" === $(element).attr('aria-hidden') (так что это скрытый арией или видимый. "true" для скрытого в этом случае.)

Смотрите источник от начальной загрузки 3.3.1 здесь :

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

Опять же, этот код из 3.3.1. Можно подтвердить это также работает в 2.1.0. В этом случае, вероятно, нюхание утки [sic] лучше.

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