2012-11-18 67 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