html - bootstrap4 中的多个模式不起作用
问题描述
我有 2 个通过选择下拉菜单触发的模式。如果我首先有“多部分删除模式”,然后是“多部分移动”模式,那么“多部分移动”模式不会显示。屏幕变暗,但模式没有出现。
如果我交换它们,那么移动一个有效,而删除一个不显示。任何人都知道我怎样才能让他们都工作。
<!-- Multi-Part Delete Modal -->
<div class="modal fade" id="multipartdeletemodal" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLongTitle">Delete Selected Parts?</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<i data-icon="ei-trash" data-size="l" class="trash"></i>
<h5>Are you sure you want to delete these parts?<br>
This process cannot be undone</h5>
<form action="{% url 'multi-delete' project.id %}" method="post" id="multidelete">{% csrf_token %}</form>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
<button form="multidelete" type="submit" value="Submit" class="btn btn-danger">Delete</button>
</div>
</div>
</div>
</div>
<!-- Multi-Part Move Modal -->
<div class="modal fade" id="multimovemodal" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLongTitle">Move Selected Parts?</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<i data-icon="ei-trash" data-size="l" class="trash"></i>
<h5>Please select group?</h5>
<form action="{% url 'multi-delete' project.id %}" method="post" id="multimove">{% csrf_token %}</form>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
<button form="multimove" type="submit" value="Submit" class="btn btn-danger">Delete</button>
</div>
</div>
</div>
</div>
解决方案
使用此 IIFE 功能,您将在 bootstrap 4 上获得多种可堆叠模式支持
(function multiple_modal() {
$(document).on('show.bs.modal', '.modal', function () {
var zIndex = 1040 + (10 * $('.modal:visible').length);
$(this).css('z-index', zIndex);
setTimeout(function () {
$('.modal-backdrop').not('.modal-stack').css('z-index', zIndex - 1).addClass('modal-stack');
}, 0);
});
$(document).on('hidden.bs.modal', '.modal', function () {
$('.modal:visible').length && $(document.body).addClass('modal-open');
});
})()
推荐阅读
- reactjs - 如何将有效负载分派到减速器并更新初始状态对象
- machine-learning - 即使用户的统计分布非常不同,如何对用户进行分组?
- java - 字符识别 - 如何?
- ruby-on-rails - JSONB 嵌套查询 postgres rails
- c - 错误消息说调试断言失败
- algorithm - 在正数范围内找出二进制表示中 1 的数量的算法
- mysql - 如何做一些查询MYSQL
- javascript - 按标签名称查找所有 React 组件实例
- laravel - 具有多角色访问权限的 apiResource
- node.js - 从 nodejs 与本地 mongodb 的连接问题:[Symbol(mongoErrorContextSymbol)]