📜  如何处理 Twitter Bootstrap 中的模态关闭事件?(1)

📅  最后修改于: 2023-12-03 14:52:59.905000             🧑  作者: Mango

如何处理 Twitter Bootstrap 中的模态关闭事件?

在使用 Twitter Bootstrap 模态框时,有时需要在模态框关闭时执行一些操作。本文将介绍如何处理模态关闭事件。

方法一:使用 jQuery 监听事件

可以使用 jQuery 监听模态关闭事件,并在事件发生时执行相应操作。事件名称为 hidden.bs.modal,可使用以下代码监听事件:

$('#myModal').on('hidden.bs.modal', function (e) {
  // 在此处执行操作
})

其中 #myModal 为模态框的 id。

方法二:使用 JavaScript 原生监听事件

也可以使用 JavaScript 原生监听模态关闭事件。可以使用以下代码监听:

let myModalEl = document.getElementById('myModal')
myModalEl.addEventListener('hidden.bs.modal', function (event) {
  // 在此处执行操作
})

需要注意的是,元素必须是通过 Bootstrap.Modal 构造函数实例化的。

完整代码示例

以下是一个完整的代码示例:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Modal Close Event Example</title>
  <link href="https://cdn.bootcdn.net/ajax/libs/bootstrap/5.1.0/css/bootstrap.min.css" rel="stylesheet">
  <script src="https://cdn.bootcdn.net/ajax/libs/bootstrap/5.1.0/js/bootstrap.min.js"></script>
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body>
  <div class="container">
    <button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#myModal">
      Launch modal
    </button>
    <div class="modal fade" id="myModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
      <div class="modal-dialog">
        <div class="modal-content">
          <div class="modal-header">
            <h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
            <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
          </div>
          <div class="modal-body">
            Modal content...
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
            <button type="button" class="btn btn-primary">Save changes</button>
          </div>
        </div>
      </div>
    </div>
  </div>

  <script>
    $(function () {
      $('#myModal').on('hidden.bs.modal', function (e) {
        alert('Modal closed')
      })
    })
  </script>
</body>
</html>

在上述示例中,当模态关闭时,执行了一个弹窗提示“Modal closed”。

总结

使用上述两种方法可以相应地处理 Twitter Bootstrap 中的模态关闭事件。使用 jQuery 监听事件较为简单,而使用 JavaScript 原生监听事件可以更好地控制模态框实例。