我正在使用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上,以便我们看看发生了什么。

08-04 11:06