为什么当我设置data-backdrop =“ false”时,当我单击模式外部时,它无法关闭模式吗?

时间:2019-12-16 15:10:50

标签: javascript css twitter-bootstrap bootstrap-4 bootstrap-modal

我的代码是这样的:

<div class="container">
  <h1 class="display-4 text-center mb-4">Bootstrap Modals</h1>

  <div class="row mb-4">
    <div class="col text-center">
      <h3>The Basic Modal</h3>
      <a href="#" class="btn btn-lg btn-success" data-toggle="modal" data-target="#basicModal" data-backdrop="false" data-keyboard="true" >Click to open Modal</a>
    </div>
  </div>

</div>

<br/><br/><br/><br/>
<div class="form-group">
    <label for="exampleFormControlTextarea1">Input data</label>
    <textarea class="form-control" id="exampleFormControlTextarea1" rows="3"> </textarea>
</div>

<!-- basic modal -->
<div class="modal fade" id="basicModal" tabindex="-1" role="dialog" aria-labelledby="basicModal" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h4 class="modal-title" id="myModalLabel">Basic Modal</h4>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        <h3>Modal Body</h3>
      </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>
  </div>
</div>

演示和完整代码如下:https://codepen.io/trendingnews/pen/BayQLrm?editors=1010

我将data-backdrop =“ false”设置为删除背景

但是它使我无法点击某些东西。我必须单击模式上的关闭按钮以关闭模式。

当我单击模态之外的任何元素时,模态会自动关闭吗?

例如,我单击textarea或其他元素,模式将自动关闭

1 个答案:

答案 0 :(得分:1)

作为我评论的扩展,添加为遇到此问题的其他人的答案。

问题:

您要使用无背景的引导程序模式,并具有单击该模式即可将其关闭的功能。

挑战:

引导程序模态背景上有一个侦听器,因此单击该模态时将其关闭。但是,如果没有背景,那么就不会发生。

解决方案:

正常使用背景,但将其颜色设置为透明。例如在背景上设置css background-color属性

.modal-backdrop { background-color: transparent; }