2012-11-18 71 views
7

我在底部顯示一個簡單的Bootstrap模式,並帶有'checkout'按鈕。延遲Twitter Bootstrap模式('隱藏')

單擊按鈕時我想:

  1. 關閉模式,例如$( '#myModal')模態( '隱藏')
  2. 等到動畫結束
  3. 變化window.location.href我的 '結賬' 頁。

我似乎無法找到一種鏈接方式,而沒有立即運行下一個功能,例如,

$('#myModal').modal('hide').each(function() { 
    window.location.href = '/checkout'; 
}); 

或者我認爲delay()可能有幫助,例如,

$('#myModal').modal('hide').delay(1000).each(function() { 
    window.location.href = '/checkout'; 
}); 

這不起作用,或者它只是即時更改頁面。

這是一個常見的jQuery問題?或者我將不得不擴展Bootstrap來處理這個問題?

回答

10

當twitter bootstrap模式完全隱藏時,有一個事件叫hidden。所以你可以這樣做:

$('#myModal').bind('hidden', function(){ 
    window.location.href = '/checkout'; 
}).modal('hide'); 
+4

我想在回答中加上這個。你可以使用'one'而不是'bind'。所以你的函數只會在你的後續隱藏方法調用後執行一次**。是的,你應該在結賬按鈕點擊時運行整個代碼。 – Inferpse

+0

謝謝,我按照上面的方法試了一下,結果很奏效。起初我猶豫不決,因爲我認爲範圍可能適用於所有模式關閉,而不僅僅是點擊「結賬」按鈕,但它完美地起作用! – AndyC

+8

如果您在Bootstrap 3中查找完全相同的行爲,請使用「hidden.bs.modal」事件而不是「hidden」。 – mdrozdziel