Twitter Bootstrap Modal - IsShown

Привет, пользователи SO SO,

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

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

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

Используя modal ('true'), я вижу, что у объекта есть элемент isShown, но кто-нибудь знает, как я могу получить к нему доступ?

Консоль .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()}

Ответ 1

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

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

или

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

Ответ 2

Ответ:

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

Ответ 3

В bootstrap 3.0.x

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

или

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

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

Ответ 4

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

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

или

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

Смотрите источник из bootstrap 3.3.1 здесь:

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

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