2012-01-06 77 views
18

你好友SO用户,Twitter Bootstrap Modal - IsShown

得到了这个问题,我自动填充一个模式框。

有时它已经有内容,所以我试着做每个请求上的隐藏/显示。 但是,在隐藏功能完成之前,节目被触发,所以它会中断脚本。

我无法对“隐藏”进行绑定,因为如果这是第一次 - 它不会从引导启动隐藏的函数。

使用模态('真')我可以看到对象有一个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()} 

回答

25

为Twitter的引导3答:

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

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

答案是:

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

但是,如果您以前从未显示过模式,则无法检查这种方式。这只适用于已经打开过模态窗口的情况。有限的方式。 – Green 2013-10-25 11:16:05

+1

if($(“element”)。data('modal')&& $(“element”)。data('modal')。isShown){对我很好用} – Mike 2014-01-30 14:01:33

3

在引导3.0.x的

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

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

modal_id是的id你的模式

1

如果您想引导程序版本2 3解决方案一个d将不会打到data(因为它看起来像名称已经更改过一次)...

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

"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。在这种情况下,鸭嗅[原文如此]可能会更好。