我正在使用Twitter引导模态对话框。当我点击引导模式对话框的提交按钮时,它会发送一个AJAX请求。我的问题是情态背景并没有消失。模态对话框确实消失了,但是“模态背景”在屏幕上创建的不透明度仍然存在

我该怎么办?


当前回答

我也遇到过类似的问题:在我的模式窗口中,我有两个按钮,“取消”和“确定”。最初,这两个按钮都将通过调用$('#myModal').modal('hide')来关闭模式窗口(前面有"OK"执行一些代码),场景如下:

打开模态窗口 做一些操作,然后点击“确定”是否验证他们并关闭模式 再次打开模态并通过点击“取消”来取消 重新打开模式,再次点击“取消”==>背景不再可访问!

好吧,我旁边的同事帮了我大忙:不用调用$('#myModal').modal('hide'),而是给你的按钮赋予data-dismiss="modal"属性,并在你的"Submit"按钮中添加一个"click"事件。在我的问题中,按钮的HTML(好吧,TWIG)代码是:

<button id="modal-btn-ok" class="btn" data-dismiss="modal">OK</button>
<button id="modal-btn-cancel" class="btn" data-dismiss="modal">Cancel</button>

在我的JavaScript代码,我有:

$("#modal-btn-ok").one("click", null, null, function(){
    // My stuff to be done
});

而没有“点击”事件归因于“取消”按钮。模态现在正确关闭,让我再次使用“正常”页面。实际上,似乎data-dismiss="modal"应该是指示按钮(或任何DOM元素)应该关闭Bootstrap模式的唯一方法。modal('hide')方法的行为似乎不太可控。

希望这能有所帮助!

其他回答

我知道这是一个非常老的帖子,但这可能会有所帮助。 这是我的一个非常小的解决办法

$('#myModal').trigger('click');

就是这样,这应该能解决问题

在动作按钮中插入:

data-backdrop="false"

and

data-dismiss="modal" 

例子:

<button type="button" class="btn btn-default" data-dismiss="modal">Done</button>

<button type="button" class="btn btn-danger danger" data-dismiss="modal" data-backdrop="false">Action</button>

如果你输入这个data-attr, .modal- background将不会出现。 关于它的文档在这个链接:http://getbootstrap.com/javascript/#modals-usage

//Create modal appending on body
myModalBackup = null;
$('#myModal').on('hidden.bs.modal', function(){
       $('body').append(myModalBackup.clone());
    myModalBackup = null;
});

//Destroy, clone and show modal
myModalBackup = $('#myModal').clone();
myModalBackup.find('.modal-backdrop').remove();
$('#myModal').modal('hide').remove();
myModalBackup.find('.info1').html('customize element <b>1</b>...');
myModalBackup.find('.info2').html('customize element <b>2</b>...');                             
myModalBackup.modal('show');

提琴——> https://jsfiddle.net/o6th7t1x/4/

另一个可能导致这个问题的错误,

确保你没有在页面中不止一次地包含bootstrap.js脚本!

确保你没有在其他地方使用相同的元素Id /类,对于一个与模态组件无关的元素。

这是. .如果你使用类名myModal来标识触发模式弹出窗口的按钮,请确保没有具有相同类名的不相关元素。