目前
modal-open
当模态打开时,被分配给主体。我如何更改添加类而不是正文的位置。
感谢您的帮助。
你必须更改添加模态打开的js。行为有点奇怪,无论如何你可以温和地或粗暴地做。
轻轻地:拦截模式点击以显示并删除添加到另一个元素的主体类:
// Modal首先添加到body元素中,然后移除并添加到另一个元素中
$('#myModal').on('shown.bs.modal', function (e) {
$('body').removeClass('modal-open');
$('#myCustomElement').addClass('modal-open');
})
然后拦截模式的关闭并添加第二次删除的执行:
$('#myModal').on('hidden.bs.modal', function (e) {
$('#myCustomElement').removeClass('modal-open');
})
残酷的方法,为了避免模态打开,不需要添加到 body 元素中: 进入 TwitterBootstrap 目录 > js 打开modal.js 搜索 modal-open ,你会发现(3.2.0版本):
在
Modal.prototype.show
你会发现
this.$body.addClass('modal-open')
在
Modal.prototype.hide
你会发现
this.$body.removeClass('modal-open')
你必须更改
addClass
和 removeClass
的目标并替换这些指令,如果你有一个固定元素,那就足够简单了(例如:$('#myFixedElement').addClass('modal-open')
,如果它是一个动态元素,那就很复杂,你将不得不再次拦截显示函数在js中添加一个global var
,让modal.js
知道并读取你的目标元素。但是你也可以更改这些函数的签名,但我真的不建议你这样做,基本上你会做。你的代码太难维护了。