如何检测Bootstrap模态关闭方式

2024-04-14

我正在将处理程序附加到 Bootstraphidden.bs.modal事件来检测模式何时关闭,但可以通过多种方式关闭:

  1. 通过显式关闭它$('#modal').modal('hide') or $('#modal').modal('toggle');
  2. 单击模态框的背景部分(如果允许);
  3. 通过数据属性,例如data-dismiss="modal"

有没有办法检测使用了哪些选项?在 - 的里面hidden.bs.modal处理程序e.target似乎总是div#modal


事情是这样的hidden.bs.modal是模式关闭后触发的事件。所以这不是click用户通过关闭按钮、角 X 或覆盖层触发的事件...

也就是说,您可以使用click用于存储用户在变量中单击的位置的事件and毫秒后,当hidden.bs.modal火灾,使用变量。

Demo:

$(document).ready(function(){

  // Variable to be set on click on the modal... Then used when the modal hidden event fires
  var modalClosingMethod = "Programmatically";

  // On modal click, determine where the click occurs and set the variable accordingly
  $('#exampleModal').on('click', function (e) {

    if ($(e.target).parent().attr("data-dismiss")){
      modalClosingMethod = "by Corner X";
    }
    else if ($(e.target).hasClass("btn-secondary")){
      modalClosingMethod = "by Close Button";
    }
    else{
      modalClosingMethod = "by Background Overlay";
    }

    // Restore the variable "default" value
    setTimeout(function(){
      modalClosingMethod = "Programmatically";
    },500);
  });

  // Modal hidden event fired
  $('#exampleModal').on('hidden.bs.modal', function () {
    console.log("Modal closed "+modalClosingMethod);
  });

  // Closing programmatically example
  $('#exampleModal').modal("show");
  setTimeout(function(){
    $('#exampleModal').modal("hide");
  },1000);
});
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js"></script>

<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">
  Launch demo modal
</button>

<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        ...
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
      </div>
    </div>
  </div>
</div>

CodePen https://codepen.io/Bes7weB/pen/bzbVEd?editors=1011

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检测Bootstrap模态关闭方式 的相关文章

  • 如何让Gmail像加载进度条一样

    我想在页面的中心和顶部创建一个像 Gmail 一样的加载进度条 并适用于所有浏览器 这是基本代码
  • Ajax - 限制列表的加载,然后在滚动上加载其余部分

    我有一家商店 在一个页面上显示某个类别的所有产品 这是店主喜欢的方式 因此不能选择分页 为了缩短某些重类别的加载时间 我希望实现一个可以加载许多产品的脚本 li s然后在页面滚动上加载另一组 页面就是用这个结构生成的 div ul clas
  • 在随机位置启动 HTML5

    我有一个大约 2 小时长的音轨 我想在我的网站上使用它 我希望它在页面加载时在随机位置开始播放曲目 使用 HTML5 可以吗 我知道您可以使用 element currentTime 函数来获取当前位置 但是如何在完全下载之前获取曲目的总时
  • Mapbox GL 中的 MaxBounds 和自定义非对称填充

    我有一个 Mapbox GL JS 应用程序 在地图上显示一些小部件 为了确保地图上的任何内容都不会被它们隐藏 我使用以下命令添加了一些填充map setPadding 这是一个不对称的 在我的例子中左边比右边大 它按预期工作 例如fitB
  • 设置双指缩放时精确的滚动位置

    我正在创建一个地图应用程序 它将标记图像放置在画布上并滚动到它 我正在使用浏览器的捏缩放和滚动来放大 缩小地图 然而 我注意到有一些奇怪的行为 我想知道如何解决它 这有点难以解释 但我们开始吧 假设您处于网页的标准缩放级别 无法进一步缩小
  • 这种类型注释在没有 TypeScript 的 React 代码中如何工作?

    我在看这段代码示例 https reacttraining com react router web example auth workflow在 ReactRouter 页面上 这篇文章很有趣 const PrivateRoute com
  • API 使用令牌向 odoo 进行身份验证

    我想使用令牌从 Express 应用程序向 Odoo 进行身份验证 我在用odoo xmlrpc https www npmjs com package odoo xmlrpc连接 Odoo 的节点模块 我的快递应用程序 Odoo 要求 A
  • JavaScript 将键添加到数组中的每个值

    我下面有这个数组 它由一个简单的数组组成 我想要完成的是放一把钥匙id在每个数组值前面以实现类似的效果 id a id b id c id d 有没有一种简单的方法可以做到这一点 任何帮助将不胜感激 谢谢 var test a b c d
  • C# 和 Javascript SHA256 哈希的代码示例

    我有一个在服务器端运行的 C 算法 它对 Base64 编码的字符串进行哈希处理 byte salt Convert FromBase64String serverSalt Step 1 SHA256Managed sha256 new S
  • 全局传递 xhr onload 函数的值

    在我正在创建的应用程序中 我有以下 XMLHttpRequest 并且我正在尝试传递结果data在 的里面xhr onload 到在同一父函数中创建的数组中 var url http api soundcloud com resolve j
  • 在 JQuery 中发布表单并填充 DIV - 在 IE 中损坏

    我正在尝试创建一个通过 jQuery 发布数据并将返回值填充到同一 DIV 中的表单 这样页面就不会在发布操作时刷新 div div
  • 如何在 Web 服务器上设置 gzip 压缩?

    我有一个嵌入式网络服务器 总共有 2 兆空间 通常 您使用 gzip 文件对客户端有利 但这会节省我们在服务器上的空间 我读到你可以只 gzip js 文件并将其保存在服务器上 我在 IIS 上测试过 但没有任何运气 为了使这项工作成功 我
  • 与 IE8 兼容的最新 jQuery 版本是什么?

    我正在开发 Bootstrap 3 网站 并且我使用的 jQuery 版本 1 9 1 遇到了一些问题 我升级到 2 1 0 我的问题消失了 但是 这破坏了 IE8 兼容性 因为 2 1 0 不再支持 IE8 并且 jQuery 在该浏览器
  • Web组件中嵌套槽的内容不可见

    我有一个 Web 组件 它应该接受任意元素来包装其内容 虽然我可以在 Chrome 开发工具中看到插槽已正确分配 但 DOM 中什么也没有出现 以前有人见过这个问题吗 定义 class ExampleParent extends HTMLE
  • 使用 animate() 的简单 jQuery 幻灯片

    使用 jQuery 的animate 如何将每个图像滑动一次 使用Slick js https github com kenwheeler slick 像CSS动画 然后停在最后一个 div class slideshow style he
  • 如何动态调整jqgrid到当前窗口大小?

    如何动态调整jqgrid到当前窗口大小 基于javascript jQuery 最好的例子在这里 TinyMCE 去 http www tinymce com tryit full php http www tinymce com tryi
  • 类中可以有生成器 getter 吗?

    我的意思是吸气剂是发电机 我相信这一切都是 ES6 也许像这样 class a get count let i 10 while i yield i let b new a for const i of b count console lo
  • 如何为我的整个 Node.js 应用程序使用相同的 MySQL 连接?

    我有一个app js 我从那里运行我的整个应用程序 在 app js 内部 我require许多文件中都有代码 对于每个文件 我都这样做 var mysql require mysql var mclient mysql createCon
  • 如何在 webpack 中渲染嵌套的 SASS?

    采取以下CSS MyComponent color blue Button color red 以及以下 React 组件 import React from react import classes from MyComponent sc
  • 在 JavaScript 函数的 Django 模板中转义字符串参数

    我有一个 JavaScript 函数 它返回一组对象 return Func id name 例如 我在传递包含引号的字符串时遇到问题 Dr Seuss ABC BOOk 是无效语法 I tried name safe 但无济于事 有什么解

随机推荐

  • 计算数组中元素出现的次数

    char array a a a b b c c c a d 我想计算该数组中的每个相同元素 以便可以将其从最高频率到最低频率进行排序 我希望输出变成这样 4 for a 2 for b 3 for c 1 for d 我已经尝试过这个 p
  • 在 Outlook 中,是否可以对我手动选择的电子邮件运行宏?

    是否可以对我在收件箱中手动选择的电子邮件运行宏 例如 右键单击电子邮件并选择 发送到 gt gt 宏 gt gt 显示接受 Outlook MailItem 作为参数的子例程列表 我认为您必须在邮件功能区中添加一个按钮 该按钮可以调用例程
  • 抓住每组中具有最高值的行?

    我的数据看起来像这样 Table Group A Color Blue Count 400 Group A Color Green Count 3 Group A Color Yellow Count 6 Group A Color Red
  • Watch OS 2 - 如何在 Watch 上存储完全本机应用程序的数据?

    我需要在 WatchKit 扩展上存储大约 5 个变量 仅在手表端 该应用程序将完全是原生的 不会向 iPhone 传递任何信息 如果手表重新启动 我需要保留数据 该应用程序当前在重新启动时重置为默认变量状态 我不知道该用什么 我在网上找到
  • Angular Animate 幻灯片从右侧翻页并从右侧翻页 (nganimate)

    我正在使用 Angular js 开展一个学校项目 我们还必须在我们的网站中实现一些动画 由于我的网站是主从结构 我想滑动详细信息页面 这是一个单独路由的页面 从右侧滑入 这其实并不是一个问题 但是当我返回 母版 页面时 母版页将从右侧滑入
  • 如何在Java中添加环境变量? [复制]

    这个问题在这里已经有答案了 可能的重复 如何从 Java 设置环境变量 https stackoverflow com questions 318239 how do i set environment variables from jav
  • 无法读取未定义的 extract-text-webpack-plugin 的属性“查询”

    我正在尝试使用 webpack 2 实现 extract text webpack plugin 并且我正在从头开始构建我的 webpack config js 当我想添加插件时 我按照以下说明进行操作npm https www npmjs
  • 如何获取 Angular 2 中当前模块的元数据?

    我想获取当前的元数据NgModule为了得到列表declarations and providers为了填充动态模块 我创建了一个在模态中显示组件的模块 那怎么办呢 您可以使用以下方式访问声明reflect metadata https g
  • couchdb:设计文档中的地图给出了compilation_error

    我在 Debian 测试中使用 Couchdb 1 1 1 我在数据库中有这个设计文档 id design Page rev 9 1944cdebabf20ae569eab7b534b43e67 views all map function
  • 使用特征应用代理

    我想为一个属性编写一个特征 为它提供一个代理 这样我就可以操纵 sees 背后的值 甚至可以为 direct access在一个班级内 这就是我现在所拥有的 但正如您所看到的 实际的 get set 或 store fetch 方法从未被调
  • 带下拉箭头的 GWT 文本框

    我想在文本框中有一个下拉箭头 在我的例子中实际上是 SuggestBox GMail 执行此操作是为了实现高级搜索功能 打开高级搜索对话框 要使该箭头显示在 TextBox 的右侧并可单击 正确的 GWT 布局是什么 看看 GMail 我发
  • 生成验证码图像 PHP

    我想使用 PHP imagettftext 生成验证码图像 以下是我的代码 它给出了一个空图像 我想解决这个问题 我已经测试了代码 但无法找到为什么图像没有显示 尽管我的随机文本被传递给验证码图像生成函数
  • 我可以在不设置内容类型的情况下调用 WCF 服务吗?

    我正在尝试使用 webHttpBinding 将遗留的 REST 普通旧 xml Web 服务替换为 WCF 服务 它必须向后兼容现有客户端 目前不在请求中发送内容类型标头 当我将客户指向我的新 Web 服务时 我收到 HTTP 错误 41
  • 用于嵌入 YouTube 视频的 CSP

    我刚刚开始在 Chrome 上的嵌入式 YouTube 视频中看到这一点 86 0 4240 193 最近更新 这可能就是我看到这个的原因 这些只是 报告 因此视频仍然会显示 但可能会出现数百个错误不对吧 这就是我所看到的 Report O
  • 在数据帧 R 中解除数据帧的嵌套

    我想解除这个数据框的嵌套 df lt tibble bears c 1 2 3 eagles tibble talons c 2 3 4 beaks c x y z 所以它看起来像 tibble bears c 1 2 3 talons c
  • 如何将 Flutter TextField 与 Firestore 字段同步?

    I have taskFirestore 中的文档 其中有todo场 以及TextField在 Flutter 用户界面中 请指教如何制作textfield与同步todo场 即 任何时间 在textfield随着用户的输入而改变 更新tod
  • 当出站 TCP 端口耗尽时,消费计划中的 Azure Functions 会如何表现?端口限制是多少?

    我正在考虑使用消费计划上的 Azure Functions 作为在应用服务计划上的 Azure WebJobs 上实施某些内容的替代方案 最近 在使用 WebJobs 时 我们在监控和识别导致应用服务计划实例上 TCP 端口耗尽的应用程序时
  • JavaScript 闭包语法

    这些结构之间有什么区别 优点 缺点 如果有 new function obj console log obj extObj vs function obj console log obj extObj 第一个返回对匿名构造函数的新构造实例的
  • Pgsql 错误:您可能需要添加显式类型转换

    我的网站工作正常 直到我将其部署到heroku 问题是heroku 使用pgsql 而我使用mysql 和laravel 框架 我的查询是 patient Patient where patient address ILIKE reques
  • 如何检测Bootstrap模态关闭方式

    我正在将处理程序附加到 Bootstraphidden bs modal事件来检测模式何时关闭 但可以通过多种方式关闭 通过显式关闭它 modal modal hide or modal modal toggle 单击模态框的背景部分 如果