gpt4 book ai didi

javascript - 如何通过Bootstrap编程API获取模态对话框实例?

转载 作者:行者123 更新时间:2023-12-03 06:58:42 28 4
gpt4 key购买 nike

我试图解决的场景是在模态实例化后(对话框设置为加载状态)禁用退出按钮关闭对话框。换句话说,在我像这样实例化我的模态之后:

(this.$el).modal("show");

用户按下提交按钮,对话框设置为加载状态,我想禁用退出按钮,因为用户不应在此状态下关闭对话框。

我已经尝试过这个:

(this.$el).modal({ keyboard: false });

但它不起作用,似乎 Bootstrap 仅在实例化模式对话框时读取这些选项...

所以我的问题是是否可以获取实际的引导模式实例来更改选项对象?根据文档,它应该是可能的(或者我误解了文档?),但我不知道如何实现。

以下是文档中的内容 ( http://getbootstrap.com/javascript/ ):如果您想获取特定的插件实例,请直接从元素中检索它:

$('[rel="popover"]').data('popover').

有什么想法吗?

最佳答案

好吧,经过一些实验,我想出了如何获取模式对话框实例:

var bootstrapModalInstance = this.$el.data("bs.modal");

然后我可以在实例上设置选项,如下所示:

bootstrapModalInstance.options.keyboard = !this.model.isSyncing;

遗憾的是,这并没有解决问题,因为 escape-key-event-listener 是在模态实例化期间设置的,如下所示:

来自 bootstrap.js

 Modal.prototype.escape = function () {
if (this.isShown && this.options.keyboard) { // The event listener is setup on initalization
this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {
e.which == 27 && this.hide() // !!! Does not check the instance options.keyboard flag status, so I had to add && this.options.keyboard here
}, this))
} else if (!this.isShown) {
this.$element.off('keydown.dismiss.bs.modal')
}
}

正如我在上面的代码注释中所写,在事件监听器中添加实例 options.keyboard 检查解决了该问题。

关于javascript - 如何通过Bootstrap编程API获取模态对话框实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37155152/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com