Twitter bootstrap 3 引导模式背景=';静态';不起作用

Twitter bootstrap 3 引导模式背景=';静态';不起作用,twitter-bootstrap-3,bootstrap-modal,Twitter Bootstrap 3,Bootstrap Modal,首先,我使用以下命令打开我的模式: $('#myModal').modal('show'); 然后,在另一种情况下,我需要在按下ESC/单击外部时,该模式不会关闭,因此我使用以下方法: $('#myModal').modal({ backdrop: 'static', keyboard: false }) 但是一旦我用第一种方法打开模态,第二种方法就不起作用了。有什么提示吗 如何强制background值开关工作?我找到了解决此问题的方法 一旦模式被隐藏,引导数据仍然保留在它

首先,我使用以下命令打开我的模式:

$('#myModal').modal('show');
然后,在另一种情况下,我需要在按下ESC/单击外部时,该模式不会关闭,因此我使用以下方法:

$('#myModal').modal({
    backdrop: 'static',
    keyboard: false
})
但是一旦我用第一种方法打开模态,第二种方法就不起作用了。有什么提示吗


如何强制
background
值开关工作?

我找到了解决此问题的方法

一旦模式被隐藏,引导数据仍然保留在它上面。为了防止发生这种情况,我采取了以下措施:

$('myModal').modal('show')//展示
//...
//如果你不想失去对先前背景的引用
$('#myModal').modal('hide');
$('#myModal').data('bs.modal',null);//这将清除BS模态数据
//...
//现在就像你期望的那样工作
$('#myModal').modal({背景:'static',键盘:false});
类似于但更简洁:

$('#myModal').modal({backdrop: true, keyboard: false, show: true});
$('#myModal').data('bs.modal').options.backdrop = 'static';
这是为
bootstrap3.+


另请参见:

我在Bootstrap4.1.1中也遇到了同样的问题,只有在将数据属性添加到html中时,它才起作用

<div class="modal fade show" id="myModal" tabindex="-1" role="dialog"
  style="display: block;" data-keyboard="false" data-backdrop="static">
...

...

我想在AJAX请求完成时禁用关闭模式

让我朝着正确的方向前进,但是在引导程序4中,在模态已经显示之后,我可以务实地做到这一点的唯一方法是:

$(“#myModal”).data('bs.modal')。_config.background='static'


也就是说,在
v3
v4
之间,它们似乎已将
bs.modal
数据对象的
选项
属性更改为
\u config

,有两种方法处理此问题:

1) 您可以直接将数据属性添加到HTML中-

<div class="modal fade show" id="myModal" tabindex="-1" role="dialog"
style="display: block;" data-keyboard="false" data-backdrop="static">
对于引导V3-

$('#myModal').data('bs.modal').options.backdrop = 'static';

这也是Bootstrap 3的解决方案,如果您使用标记而不是JS methodsYes打开模态,即使模态是使用Javascript打开的,也是如此。这对我来说很好。谢谢
$('#myModal').data('bs.modal').options.backdrop = 'static';