use*_*496 9 javascript jquery twitter-bootstrap
我有一个页面,其中一个Bootstrap模态打开另一个模态.
问题在于,每个打开的模态都会增加
<div class="modal-backdrop fade in"></div>
到HTML代码.这对第一个很好,但是因为它就opacity: .5;会使每个模态打开时页面变暗.有没有办法检查是否modal-backdrop已经存在并且在这种情况下不打开另一个?
我打开我的模态
<a href="" data-target="#modal_01" data-toggle="modal">Modal</a>
或者使用jQuery:
$('#modal_01').modal('show');
非常感谢对此问题的任何帮助!
这里有一个方便您的小提琴:https://jsfiddle.net/zsk4econ/1/
Ani*_*war 10
这是我认为适合您的工作演示.
$(".modal").on("shown.bs.modal", function () {
if ($(".modal-backdrop").length > 1) {
$(".modal-backdrop").not(':first').remove();
}
})Run Code Online (Sandbox Code Playgroud)
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<div class="container">
<!-- Trigger the modal with a button -->
<button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal">Open Modal</button>
<!-- Modal -->
<div class="modal fade" id="myModal" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-body">
<button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal2">Open Modal</button>
</div>
</div>
</div>
</div>
<!-- Modal -->
<div class="modal fade" id="myModal2" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-body">
<button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal3">Open Modal 3</button>
</div>
</div>
</div>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
让CSS处理它.
.modal-backdrop:nth-child(2n-1) {
opacity : 0;
}
Run Code Online (Sandbox Code Playgroud)
https://jsfiddle.net/zsk4econ/3/
小智 6
您可以根据要求添加/删除 data-backdrop="false" 属性。否则,您还可以包含 css 之类的
.modal-backdrop+.modal-backdrop {
opacity : 0;
}
Run Code Online (Sandbox Code Playgroud)