2012-01-06 126 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。在這種情況下,鴨嗅[原文如此]可能會更好。