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