Twitter Bootstrap模式 - IsShown

时间:2012-01-06 09:09:40

标签: jquery modal-dialog twitter-bootstrap

你好,SO用户,

我自动填充模态框时出现此问题。

有时它已经有了内容,所以我尝试在每个请求上进行隐藏/显示。 但该节目在隐藏功能完成之前被触发,因此它会破坏脚本。

我无法绑定到“隐藏”,因为如果它是第一次 - 它不会从bootstrap中激活隐藏的函数。

使用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 个答案:

答案 0 :(得分:25)

回答Twitter Bootstrap 3:

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

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

答案 1 :(得分:10)

答案是:

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

答案 2 :(得分:3)

在bootstrap 3.0.x上

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

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

modal_id是你的模态的ID

答案 3 :(得分:1)

如果你想要一个Bootstrap版本2 3解决方案,而不想点击data(因为它看起来已经是名字了改变了一次)...

$(element).hasClass('in')("褪色"或"可见&#34 ;;加上它返回布尔值)

"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。在这种情况下,鸭子嗅[sic]可能更好。

答案 4 :(得分:0)

回答Bootstrap 4:

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

作为一项功能:

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