javascript - 在 bootstrap3-dialog 的每个 onhide 方法上附加句柄

标签 javascript bootstrap-modal

我正在使用 https://nakupanda.github.io/bootstrap3-dialog/ 中的 bootstrap3-dialog 库 问题是,每次显示对话框(警报、确认或自定义对话框)时,主体的滚动条就会消失,并且在对话框关闭时永远不会回来。我可以在每个对话框的 onhide 属性上添加这一行,但这会很耗时:

$('body').css('overflow','scroll') 

是否有其他方法可以在每次模式关闭时触发该功能?

最佳答案

我正在查看引导模式的代码,他们有这个:

resetScrollbar: function() {
        var openedDialogs = this.getGlobalOpenedDialogs();
        if (openedDialogs.length === 0) {
            this.$body.css('padding-right', BootstrapDialogModal.ORIGINAL_BODY_PADDING);
        }
    },

调用的是:

hideModal: function() {
        this.$element.hide();
        this.backdrop($.proxy(function() {
            var openedDialogs = this.getGlobalOpenedDialogs();
            if (openedDialogs.length === 0) {
                this.$body.removeClass('modal-open');
            }
            this.resetAdjustments();
            this.resetScrollbar();
            this.$element.trigger('hidden.bs.modal');
        }, this));
    }

我似乎无法弄清楚是什么导致此代码无法恢复滚动条。它似乎在他们的网站上运行良好。

如果您觉得舒服,我建议您调试 api 本身的 hideModal 函数,并找出它不起作用的原因,也许可以将上面的 css 片段放在那里作为解决方法。

或者也许将您的代码发布到 plunkr、jsfiddle 上,以便我们可以看看发生了什么。

关于javascript - 在 bootstrap3-dialog 的每个 onhide 方法上附加句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27809921/

相关文章:

javascript - 模式内的轮播不起作用

javascript - JS requestAnimationFrame 在给定的赫兹上闪烁

javascript - 用正则表达式替换选择索引属性

javascript - JavaScript 中的原型(prototype)与函数式 OOP

javascript - Aurelia 用模态替换所有浏览器原生确认

javascript - 调整隐藏模态弹出窗口的大小

html - 相互堆叠动态增长的 div,它们之间没有空格

javascript - 注册前接受模式

Javascript createImageData 抛出 DOM 异常 9,rgb 数据不工作

Javascript array.find() 仅在第一个实例中查找