Модная загрузка Twitter - IsShown - PullRequest
19 голосов
/ 06 января 2012

Hello Fellow 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()}

Ответы [ 5 ]

25 голосов
/ 13 октября 2013

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

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

или

$("element").data('bs.modal').isShown
10 голосов
/ 10 января 2012

Ответ:

$("element").data('modal').isShown
3 голосов
/ 23 ноября 2013

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

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

или

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

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

1 голос
/ 24 июня 2014

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

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

или

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

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

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

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

0 голосов
/ 06 июня 2018

Ответ для Bootstrap 4:

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

Как функция:

function isModalShown(modal) {
    var modalIsShown = (modal.data('bs.modal') || {})._isShown;
    return !(typeof modalIsShown === 'undefined' || !modalIsShown);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...