2014-02-13 110 views
2

我想在用戶關閉另一個後立即顯示引導模式。所以我使用下面的代碼試圖做到這一點:關閉另一個後,打開一個助推模式 - 意外的行爲

currentModal.modal('hide').on('hidden.bs.modal', function(){ 
    nextModal.modal('show'); 
}); 

一切都正常發生。第一個模態關閉,下一個模態出現。

但是,class="modal-open"應該在body元素正常滾動工作,什麼都沒有發生。顯示第二個模態後,該類將從body中消失。

我做錯了什麼?

回答

0

我做錯了什麼?

我不這麼認爲。 large number of issues on this topic表明這是不是精心設計,或不是旨在支持這一點。相關的bug會 Multiple modals fix #5022Multiple modals #11872 .modal-open is not applied to body when "switching" to another modal #11865在那裏明確@mdo說:

是啊,我們不會支持多模態。

那麼該怎麼辦呢?

小超時一定要幫助:

currentModal.modal('hide').on('hidden.bs.modal', function(){ 
    setTimeout(function() { 
     nextModal.modal('show'); 
    }, 100); 
}); 
+0

好吧,讓我們繼續。感謝您讓我知道關於此主題的「社區」決定。 –

0

沒有看到這在行動,我的猜測是有某種回調處理程序,刪除類「模式打開」。你可以嘗試手動像這樣將它添加:

currentModal.modal('hide').on('hidden.bs.modal', function(){ 
    nextModal.modal('show'); 
    body.addClass('modal-open'); 
}); 

但不是重寫引導的,你看着data-dismissdata-target

+0

如果有一個異步回調(這是我的猜測一樣),這不會幫助 - 它執行不低於唯一'模式後( '秀')'。超時可能會解決這個問題。 – Bergi

+0

是的,我認爲,如果找不到本機到Bootstrap的方式,最好找到該函數。 – danwarfel

+0

正如@Bergi所說,它不起作用。我找到了一個快速解決方案,只需等待幾分鐘,然後再顯示下一個模態。但我認爲Bootstrap不應該以這種方式工作,對吧? –

相關問題