Twitter Bootstrap模式 – IsShown

您好,SO用户,

在我自动填充模态框的地方遇到了这个问题。

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

我无法绑定到“隐藏”,因为如果它是第一次 – 它将不会从引导程序中激活隐藏的函数。

使用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()} 

Twitter Bootstrap 3的答案:

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

要么

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

答案是:

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

在bootstrap 3.0.x上

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

要么

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

modal_id是模态的id

如果你想要一个Bootstrap版本2 3的解决方案而不想点击data (因为看起来这个名称已经改变了一次)……

$(element).hasClass('in') (将“淡入”或“可见”;加上它返回一个布尔值)

要么

"false" === $(element).attr('aria-hidden') (这样的咏叹调隐藏或可见。 "true"隐藏在这种情况下。)

请参阅bootstrap 3.3.1中的source :

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

同样,该代码来自3.3.1。 可以确认这也适用于2.1.0。 在这种情况下,鸭子嗅[sic]可能更好。

Bootstrap 4的答案:

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

作为一个function:

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