Bootstrap 3:防止模态内部的模态每次触发(hidden.bs.modal)

2024-03-17

我有一个模态位于另一个模态中,并且我设法使内部模态关闭而不影响另一个模态。问题是,当第二个模式关闭时,它会触发'hidden.bs.modal'事件本身和第一个模型。

<!-- My Html -->
<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">Open demo modal</button>
<div class="modal" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="false">
    <div class="modal-dialog modal-sm">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
                 <h4 class="modal-title" id="myModalLabel">Demo Modal</h4>
            </div>
            <div class="modal-body">
                <p>
                    <a href="#" data-toggle="modal" data-target="#uploadImage" class="btn btn-primary">Upload image</a>
                </p>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            </div>
        </div>
    </div>
    <div class="modal" id="uploadImage" tabindex="-1" role="dialog" aria-labelledby="uploadImage-title" aria-hidden="true">
        <div class="modal-dialog modal-sm">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
                     <h4 class="modal-title" id="uploadImage-title">Upload new image</h4>
                </div>
                <div class="modal-body">
                    Testing Area
                </div>
                <div class="modal-footer">                
                    <button type="button" class="btn btn-default" id="btnUploadCancel">Cancel</button>
                    <button type="button" class="btn btn-success">Accept</button>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- My JS-->
$('#btnUploadCancel').click(function () {
    $('#uploadImage').modal('toggle');
});

$(document).on('hidden.bs.modal', '#myModal', function () {
    alert("hello");
});

$(document).on('hidden.bs.modal', '#uploadImage', function () {
    alert("goodbye");
});

这里有一个jsFiddle 示例 http://jsfiddle.net/wytf57mL/2/我做的。

这个问题的原因是,我只需要在第二个模态被隐藏时触发一个操作,然后在第一个模态被隐藏时触发其他操作。关于如何使用每个人的事件来解决这个问题的任何想法???

Note: 第二个模态必须位于另一个模态内部,因为它们被称为部分视图。


我猜测这些模态元素被异步引入到页面,这就是为什么您使用绑定到文档而不是绑定的委托事件侦听器hidden.bs.modal直接到#myModal and #uploadImage他们自己。如果情况并非如此,并且您可以直接进行绑定,我建议使用这种方法来捕获hidden事件于#uploadImage本身,并使用类似的方法防止它在 DOM 树中冒泡event.stopPropagation();.

不过,您也可以继续将此处理程序委托给文档,并使用target的财产Event对象传递到处理程序回调中以确定哪​​个元素是事件的实际源:

$(document).on('hidden.bs.modal', '#myModal', function (event) {
    if (event.target.id == 'uploadImage') {
        // do stuff when the upload dialog is hidden.
    }
    else if (event.target.id == 'myModal') {
        // do stuff when the outer dialog is hidden.
    }
});

P.S.:正如您可能已经知道的,Bootstrap 框架不支持重叠模式对话框 http://getbootstrap.com/javascript/#overlapping-modals-not-supported。当您继续在模态中嵌套模态时,请注意这一点,特别是关于通过标记 API 初始化的解雇元素和data-dismiss="modal".

P.P.S.:

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

Bootstrap 3:防止模态内部的模态每次触发(hidden.bs.modal) 的相关文章

随机推荐

  • 如何使用电子反应样板正确设置材料用户界面

    我在使用 electro react boilerplate 运行的material ui v4 9 5 库时遇到问题 重现 跟着安装教程 https electron react boilerplate js org docs insta
  • 谷歌 MLKIT 在文本识别时显示此错误:“正在等待下载文本识别模型。请稍候”

    我在我的 flutter 应用程序上使用这个包 firebase ml vision 0 9 3 5 当我使用文本识别器时 它显示错误 正在等待下载文本识别模型 请稍候 但它在人脸检测或条形码方面没有问题 并且工作正常 文本识别器有什么问题
  • Backbone.js on(),最后一个this指的是什么?

    我正在学习 Backbone 我正在尝试找出我从哪个库中获取 on 功能 我以为它是 jQuery 但如果是这样 我不理解 API 有人可以解释一下 on 功能或将我链接到一些文档吗 第一个参数是事件 第二个参数是被调用的函数 最后一个 t
  • 如何用字体很棒的图标替换默认的 WordPress 导航栏链接文本?

    所以我对 WP 还很陌生 虽然我对 WP 导航栏有一些经验 但这是相当独特的 我正在尝试在 wp 生成的导航中注入很棒的字体图标 基本上 当我在 wp 中创建菜单时 WP 将为我生成 div class menu main menu con
  • Android:onScrollStateChanged SCROLL_STATE_IDLE 有时不会触发

    我遇到了一些问题 我在做什么 我有一个 ListView 其中有一些图像 为了使滚动更流畅 我禁用了滚动时显示的图像 现在好像有一个bug http code google com p android issues detail id 50
  • 设置输入文件表单的默认值[重复]

    这个问题在这里已经有答案了 可能的重复 动态设置文件输入的值 https stackoverflow com questions 1017224 dynamically set value of a file input 我有一个输入文件
  • 在 .NET .config 文件中读取和写入值

    我想对 user config 文件使用自定义路径 而不是让 NET 从默认位置读取它 我像这样打开文件 ExeConfigurationFileMap configMap new ExeConfigurationFileMap confi
  • 为什么 TDD“尖峰”被称为“尖峰”?

    测试驱动开发人员指的是快速 探索性的调查 包括编写代码以查看其是否有效 a spike 你知道他们为什么想出这个词吗 Update 肯特 贝克 Kent Beck 的造词对我来说看起来像是 原始 的 尽管他对这个词的使用在我看来没有多大意义
  • 使用XML关联子节点和父节点的值

    使用 R 的 XML 包时 如何保留与该节点关联的某个节点的数据 例如在同一个列表中 我正在尝试将从网络上抓取的数据放入数据框中 并将相关信息分组为行 有 span 没有类属性来区分的元素 可能有一个或两个 span 位于每个相关组 数据框
  • python beautifulsoup new_tag:将类指定为属性

    我对 python 和 beautifulsoup 都很陌生 所以也许我找不到一个简单的答案 当我打电话时 new tag name 我还可以分配属性 例如 new tag a href id link1 但我不能这样分配类 因为它是保留字
  • 声明 actionListener=“#{bean.method}” 时 不导航

    我正在尝试创建一个允许用户登录系统然后导航到主页的页面 我已经设法让它完成其中一项任务 但无法弄清楚如何让它同时完成两项任务 我爬遍了所有网站 但找不到合适的答案 请帮忙 我的代码如下 XHTML
  • Apache下载php文件而不是执行脚本

    我刚刚在运行 10 6 Apache2 PHP Mysql 的新 Mac 上设置了本地 Web 服务器 一切似乎都工作正常 除了当我导航到SOME 不是大多数 页面 Apache 下载 php 文件而不是执行它们 我认为这可能与 php 执
  • 布尔玛进度文本位于中间

    为什么当我使用 Bulma CSS 框架的进度时 https bulma io documentation elements progress https bulma io documentation elements progress 我
  • 无法在 MySQL Workbench 5.2.40 中创建表

    我刚刚创建了一个新架构并想要创建一个新表 当我右键单击我创建的 2myschema 并选择 新表 时 我为要创建的表指定了名称 但出现以下错误 我搜索了该错误 发现原因是我输入了保留字 例如 order 但 table2 不可能是保留字 并
  • HashSet为什么要排序? [复制]

    这个问题在这里已经有答案了 我正在学习 Java 中的容器 最近我读到 HashSet 没有按顺序给出元素 有什么有趣的Integer我随机制作的 HashSet 已排序 当我将其类型更改为Double打印的 HashSet 不再排序 我的
  • 编辑 ELF 文件中的变量值?

    我需要更改已编译的 ELF 文件中的几个变量 为了清楚地解释这一点 我将使用一个简单的 C 结构作为示例 单个源文件被编译并从 MyFile c 链接 0x1000 到 MyFile elf typedef struct uint32 t
  • DataGrid 的 CellEditingTemplate 和编辑模式下的焦点

    我在使用 WPFToolkit 时遇到问题DataGrid当定制色谱柱同时提供两者时CellTemplate and CellEditingTemplate 如果你看下面 你会看到我的编辑模板有一个CheckBox 从功能上来说一切都很好
  • Xcode 4 的隐藏功能

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 现在 Xcode 4 已正式发布 是时候跟进我之前的问题了 Xcode 的隐藏功能 https
  • WordPress API:添加/删除帖子上的标签

    我知道这似乎是一个简单的操作 但我找不到任何资源或文档来解释如何使用帖子 ID 以编程方式向帖子添加和删除标签 下面是我正在使用的示例 但它似乎覆盖了所有其他标签 function addTerm id tax term term id i
  • Bootstrap 3:防止模态内部的模态每次触发(hidden.bs.modal)

    我有一个模态位于另一个模态中 并且我设法使内部模态关闭而不影响另一个模态 问题是 当第二个模式关闭时 它会触发 hidden bs modal 事件本身和第一个模型