我正在使用 Bootstrap Modal .我声明它,我调用它,我展示它……一切似乎都正常。
但是,如果我有一个已经存在的模式,之前显示的“键盘”属性为 false,并且我想随时更改它怎么办?我的意思是:
首先,我创建了一个 Modal 来执行此操作(如您所见,我将 modal putting keyboard 属性声明为 false):
$('#myModal').modal({
show: false,
backdrop: true,
keyboard: false
});
但随后我声明了这个事件处理程序,这意味着如果发生“某事”,我希望将键盘属性设置为 true。
$('#myModal').on('shown', function(e) {
if (something){
$('#myModal').modal({keyboard: true});
}
}
所以,当我去的时候
$("#myModal").show();
事件处理程序没有做它应该做的事情,因为一旦按下 Escape 键我就不会关闭模式。但我完全确定“某事”是真的,并且我已经检查并重新检查了 $('#myModal').modal({keyboard: true})
是否已执行。
关于为什么这不更新配置选项的值的任何线索?
最佳答案
要更改已启动的 Bootstrap 插件的配置设置,例如 Modal,您需要访问附加到该元素的插件对象,例如 $('#pluginElement').data['somePlugin']
然后在其中设置options
。
对于模态框,您需要:
$('#myModal').data('modal').options.keyboard = true;
JSFiddle Demo (old)
For Bootstrap 3 (as mentioned in comments by @Gerald ), you need
bs.modal
:
$('#myModal').data('bs.modal').options.keyboard = true;
Waiting Modal Example
关于javascript - 更改 Bootstrap 模式选项一旦存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11806816/