2012-07-12 111 views
6

我目前正在Bootstrap工作,以視頻模式。一切都是通過cms生成的(所以我不能控制將顯示多少視頻。)Twitter Bootstrap莫代爾 - 隱藏任何

一切都很好(我必須給每個模態自己的ID和一切正常)。事情是,當你關閉模式並且視頻正在運行時,視頻(和聲音)將繼續在後臺運行。

躲閃,當一個模式與X鍵關閉,我刷新HTML的模式,就像這樣:

$('button.close').click(function(){ 
    var divcible=$(this).parent().parent().find(".modal-body"); 
    var html = divcible.html() 
    divcible.html("") 
    divcible.html(html) 
}) 

我的那個問題是,如果用戶點擊背景下, Html將不會重置。自舉的網站上,他們稱這種

$('#myModal').on('hidden', function() { 
    // do something… 
}) 

當一個模式關閉監控,但我想找到是否有任何時態關閉監控方式。從原來的事件目標

$('.myModal').on('hidden', function() { 
    // do something… 

    // edit for clarity: "that" will now reference the modal that was hidden 
    var that = this;   
}) 
+0

你試過'$( '.modal-body')。on('hidden',function(){//做一些事情...... })'?將您的選擇器基於類名而不是ID。 – 2012-07-12 15:23:13

回答

9

添加類的模態和使用。這也是hidden事件的情況,當模式完成對用戶隱藏時觸發。因此,一種方式來監控任何模式關閉如下:將事件處理程序附加到document元素:

$(document).on('hidden', function() { 
    // a modal closes, so do what you want :) 
}) 
2

默認情況下,大多數事件bubble updocument元素:

+0

不幸的是,你並沒有檢查你是否真的在這裏處理模態,是嗎? – 2012-07-12 15:46:07

+0

實際上,Twitter Bootstrap模塊組件會觸發一個名爲「隱藏」的事件。沒有命名空間,沒有關於此事件起源的附加信息。任何時候當你發現一個名爲'hidden'的事件時,你必須確保沒有其他組件可以用相同的名字觸發相同的事件。即使您考慮@ Terry的解決方案,問題也完全一樣。這不是你在哪裏發現事件,而是觸發了哪個事件以及哪個名稱。 – fsenart 2012-07-12 15:50:23

+0

好的。雖然,公平的說,特里的解決方案確保只考慮正確的模態。不過,這有點多。 – 2012-07-12 15:56:52

8
$('#myModal').on('hidden.bs.modal', function (e) { 
    // do something... 
}) 

從引導3.x的文檔 http://getbootstrap.com/javascript/#modals

+0

謝謝。我使用的是Bootstrap v4 alpha版,我需要「hidden.bs.modal」才能正常工作,就像你說的那樣。謝謝。 – 2017-04-07 21:04:03