为啥点击模态框的时候为自动生成两个div元素modal-backdrop

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥点击模态框的时候为自动生成两个div元素modal-backdrop相关的知识,希望对你有一定的参考价值。

参考技术A modal默认隐藏需要采用aria-hidden='true'设定。其实modal已经执行了并且打开了,但是由于你添加hide类,所以整个modal就被隐藏了。另外你的整个modal框架缺少div.modal-dialog和div.modal-content两个元素包裹,否则样式比较难看的。本回答被提问者采纳 参考技术B 我也遇到了类似的情况;
原因是:有页面嵌套,并且外层和嵌套页都引入了bootstrap.js;
参考解决方案:移除嵌套页的js引入,只保留最外层的。

Bootstrap|模态框

1. 效果:从一个主页面中,点击某个按钮,弹出另外一个小页面,称为模态框

2. 主页面,两个元素:事件按钮,加载模态框的div

<button type="button" id="open_modal" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" data-original-title="" title="">
打开模态框</button>
<div id="open_modal_div"></div>

3. 模态框页面

<div id="show_modal" class="modal fade" tabindex="-1" role="dialog">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title">Modal title</h4>
      </div>
      <div class="modal-body">
        <p>One fine body&hellip;</p>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
      </div>
    </div><!-- /.modal-content -->
  </div><!-- /.modal-dialog -->
</div><!-- /.modal -->

4. js

//打开模态框
$("#open_modal").unbind("click").click(function () 
	$("#open_modal_div").load("modal.html",function () 
		$("#show_modal").modal("show");
	);
);
//监听打开模态框时进行的操作
$('#show_modal').on('shown.bs.modal', function () 
  $('#myInput').focus()
)
//监听关闭模态框时进行的操作
$("#show_modal").on("hidden.bs.modal",function () 
	$("#open_modal_div").empty();
)

 

以上是关于为啥点击模态框的时候为自动生成两个div元素modal-backdrop的主要内容,如果未能解决你的问题,请参考以下文章

使用jQuery将多条数据插入模态框的实现代码

Bootstrap|模态框

Bootstrap|模态框

懂bootstrap的过来看看,bootstrap模态框的问题

模态框的对齐

图解模态框