Javascript 杀死(关闭)一个已经打开的Twitter Boostrap模式?

Javascript 杀死(关闭)一个已经打开的Twitter Boostrap模式?,javascript,jquery,twitter-bootstrap,Javascript,Jquery,Twitter Bootstrap,如何杀死已打开的引导模式?例如: 嗯,一切正常。 我更新了你的提琴:首先,你在问题中提供的JSFIDLE是在非元素(#模态删除)上收听show事件,而它应该附加到实际模态(#myModal)[你在代码中正确地执行了该操作] 第二,尽管观察结果正确,但我仍然可以证明我看到了您抱怨的行为,原因如下:show事件是在实际模式显示之前触发的,因此您对hide()的调用是在show()代码的其余部分之前进行的。解决此问题的一种方法是监听显示的事件这不是做这件事的方法 正确的方法是对事件调用preventD

如何杀死已打开的引导模式?例如:


嗯,一切正常。 我更新了你的提琴:

首先,你在问题中提供的JSFIDLE是在非元素(
#模态删除
)上收听
show
事件,而它应该附加到实际模态(
#myModal
)[你在代码中正确地执行了该操作]

第二,尽管观察结果正确,但我仍然可以证明我看到了您抱怨的行为,原因如下:show事件是在实际模式显示之前触发的,因此您对
hide()
的调用是在
show()
代码的其余部分之前进行的。解决此问题的一种方法是监听显示的
事件这不是做这件事的方法

正确的方法是对事件调用
preventDefault()

$('#myModal').on('show', function(e) {
  if (true) {e && e.preventDefault()}
});
这将节省大量正在执行的不必要代码


顺便说一句,我只想补充一句,我认为这个场景很好地说明了同时显示
show
show
事件的原因。虽然不是
show
事件的唯一原因,但在操作发生之前触发它允许开发人员在需要时取消它。

根据引导文档,
$('#myModal')。modal('hide')
肯定可以工作。如果没有,我们将无法在没有粘贴代码的情况下提供帮助…@ChristianEngel-jsFiddle-created。顺便说一下,您的示例不起作用。单击模态背景将关闭模态。您始终可以触发
。单击
事件。实际上不要这样做。:)@Marrowmaw如果
$.get()
失败,我需要关闭模式,并显示另一个带有错误文本的模式。您也可以简单地将属性
data dislose=“modal”
添加到操作栏中应该关闭模式的每个按钮。好的,也许我无法很好地解释。如果发生某种情况(例如$.get()失败),我需要关闭模式。当然,您的链接会关闭模态…因此只需调用
$('#myModal').modal('hide')
和模态将逐渐消失,如我的小提琴中所示……您不必在单击事件中调用该函数。只需启动ajax请求并关闭错误回调中的模式,就可以了<代码>$('#myModal').modal('hide')
.on()
函数中不执行任何操作。正如我在小提琴上演示的那样。。。我编辑了这个问题,也许你能做得更好。
if(true) { $('#myModal').modal('hide');   } // Not working
if(true) { $('#myModal').modal('toggle'); } // Too much recursion!!! :P
if(true) { return;                        } // Nope
$('#myModal').on('show', function(e) {
  if (true) {e && e.preventDefault()}
});