javascript - 更改 Bootstrap 模式选项一旦存在

标签 javascript jquery jquery-plugins twitter-bootstrap modal-dialog

我正在使用 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/

相关文章:

javascript - 如何在父级的内部 div 上使用 "this"

用于匹配 "{0-99}"的插值的 JavaScript RegEx 表达式

javascript - 如何使用 jQuery 1.3.2 展开元素

jquery - 带有标签元素的toggleClass的奇怪行为

javascript - 迭代 ul 的所有项目并使用 ajax 调用插入数据库

javascript - Lavalamp 下拉重叠

javascript - Morris 圆环图始终从 12 点开始(中上)

javascript - 在 Ajax 响应回调中调用本地 JavaScript 方法

javascript - 关闭表单提交时的 Jquery 对话框

javascript - jQuery 重复数组循环以更改标签属性