首先,我用这个打开我的模态:
$('#myModal').modal('show');
然后,在另一种情况下,我需要在按ESC /点击外面时这个相同的模态不会关闭,所以我用这个:
$('#myModal').modal({
backdrop: 'static',
keyboard: false
})
但是一旦我用第一种方法打开我的模态,第二种方法就不起作用了。任何提示?
如何强制backdrop
值切换工作?
答案 0 :(得分:13)
我找到了解决此问题的方法。
一旦模态被隐藏,引导数据仍然保留在其上。为了防止我有以下内容:
func getDatabaseScore(completion: (Int?)->()) {
let ref2 = FIRDatabase.database().reference().child("users").child("user").child((user?.uid)!)
ref2.observeSingleEvent(of: .childAdded, with: { (snapshot) in
if let userDict = snapshot.value as? [String:Int] {
//Do not cast print it directly may be score is Int not string
completion(userDict["score"])
}
completion(nil)
})
}
答案 1 :(得分:5)
与Daniele Piccioni类似,但更简洁:
$('#myModal').modal({backdrop: true, keyboard: false, show: true});
$('#myModal').data('bs.modal').options.backdrop = 'static';
这适用于Bootstrap 3.+
答案 2 :(得分:3)
我在Bootstrap 4.1.1上遇到了同样的问题,并且只有在将数据属性添加到html时它才起作用
<div class="modal fade show" id="myModal" tabindex="-1" role="dialog"
style="display: block;" data-keyboard="false" data-backdrop="static">
...
答案 3 :(得分:0)
我想在AJAX请求完成时禁止关闭模式。
@jollyGreen使我朝着正确的方向前进,但是在 bootstrap 4 中,模态已经显示后,我能务实地做到这一点的唯一方法是这样的:
$("#myModal").data('bs.modal')._config.backdrop = 'static';
也就是说,在v3
和v4
之间,他们似乎已将options
数据对象的bs.modal
属性更改为_config
。
答案 4 :(得分:0)
有两种方法可以解决此问题:
1)您可以直接将数据属性添加到HTML中-
<div class="modal fade show" id="myModal" tabindex="-1" role="dialog"
style="display: block;" data-keyboard="false" data-backdrop="static">
2)您可以使用JQuery(对于Bootstrap V4)-
$("#myModal").data('bs.modal')._config.backdrop = 'static';
对于Bootstrap V3-
$('#myModal').data('bs.modal').options.backdrop = 'static';