我正在使用Twitter引导模态对话框。当我点击引导模式对话框的提交按钮时,它会发送一个AJAX请求。我的问题是情态背景并没有消失。模态对话框确实消失了,但是“模态背景”在屏幕上创建的不透明度仍然存在
我该怎么办?
我正在使用Twitter引导模态对话框。当我点击引导模式对话框的提交按钮时,它会发送一个AJAX请求。我的问题是情态背景并没有消失。模态对话框确实消失了,但是“模态背景”在屏幕上创建的不透明度仍然存在
我该怎么办?
当前回答
我也遇到过类似的问题。我将Boostrap与Backbone结合使用,我捕捉到点击“Do it”按钮,然后停止这些事件的传播。奇怪的是,这让模态消失了,但背景却没有。如果我调用event.preventDefault(),但不调用stopPropagation(),这一切都很好。
其他回答
如果您正在使用从getboostrap站点本身复制并粘贴到html生成的选择器中,请确保您删除了注释'<!——/。模态——>”。Bootstrap会感到困惑,认为注释是第二个模态元素。它为这个“第二个”元素创建了另一个背景。
从https://github.com/twbs/bootstrap/issues/19385
Modal的显示/隐藏方法是异步的。因此,代码如下: foo.modal(“隐藏”);bar.modal(“秀”);是无效的。你需要等待 实际完成的显示/隐藏(通过侦听 显示/隐藏事件;看到 http://getbootstrap.com/javascript/#modals-events) 再次显示或隐藏方法。
我有这个问题时,我打开相同的模式两次太快,所以一个简单的解决方法是检查它是否已经显示,然后不显示它再次:
$('#modalTitle').text(...);
$('#modalMessage').text(...);
if($('#messageModal').is(':hidden')){
$('#messageModal').modal('show');
}
确保在执行AJAX请求时没有替换包含实际模态窗口的容器,因为Bootstrap在尝试关闭它时将无法找到对它的引用。在Ajax完整处理程序中删除模态,然后替换数据。
如果这不起作用,你可以通过以下方法强迫它消失:
$('#your-modal-id').modal('hide');
$('body').removeClass('modal-open');
$('.modal-backdrop').remove();
确保你没有在其他地方使用相同的元素Id /类,对于一个与模态组件无关的元素。
这是. .如果你使用类名myModal来标识触发模式弹出窗口的按钮,请确保没有具有相同类名的不相关元素。
我也有同样的问题。我发现这是由于Bootstrap和JQueryUI之间的冲突。
两者都使用“close”类。改变其中一个类可以解决这个问题。