javascript - 获取关闭模态的元素

标签 javascript jquery twitter-bootstrap twitter-bootstrap-3 bootstrap-modal

在我的 HTML 中,我的一个模式中有这个:

<a href="#" class="clicker" data-dismiss="modal">Click</a>

如果单击此元素,它会隐藏模式。

但是,我希望能够在 jQuery 中获取关闭模态的元素,例如:

$('#myModal').on('hidden.bs.modal', function(event)
{
    var invoker = $(event.relatedTarget);
});

但这行不通。 relatedTarget 似乎只适用于 show.bs.modalshown.bs.modal ( as per the documentation )。

那么如何在 hidden.bs.modal 事件中获取导致模态关闭的元素?

最佳答案

I have made a Pen to show how to achieve the desired result .如您在此示例中所见,Bootstrap 生成的事件不共享用于关闭模式的确切元素。它们作为 .target.currentTarget 引用整个模态元素本身。

因此,为了获取被单击以关闭模式的元素,我使用了 jQuery 选择器功能。像这样:

$("[data-dismiss='modal']").click(function() {
  $("#data-dismiss").html('#'+ $(this).attr('id'));
});

在这种情况下,jQuery 正在搜索具有 data-dismiss 属性且值为 modal 的每个元素,并为找到的这些元素附加一个回调函数单击它们时执行。

正如您在我制作的示例中看到的那样,有两个按钮具有此属性。模态标题中的一个:

<button id="header-close-button" type="button"
        class="close" data-dismiss="modal" aria-label="Close">
    <span aria-hidden="true">&times;</span>
</button>

还有一个在模态页脚中:

<button id="footer-close-button" type="button"
        class="close" data-dismiss="modal" aria-label="Close">
    <span aria-hidden="true">Close</span>
</button>

这两个按钮都有不同的 ID,我设置这些 ID 以显示您可以检查究竟是哪个按钮被点击了 - 通过附加到的回调函数上的 $(this).attr('id')点击事件。

关于javascript - 获取关闭模态的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40954438/

相关文章:

javascript - UI-Bootstrap 示例不起作用

javascript - 使用 JS 变量修改 HTML 值

javascript - 在 Ajax 请求开始和完成时显示和隐藏元素(状态栏)

jquery - 在 .load 成功运行后,通过动画更改 div 的高度

javascript - 空下拉内容框

css - 如何让 div 在此 Bootstrap 3 网格中彼此居中?

javascript - js+html5 getUserMedia 与麦克风冲突(android)(手机认为电话调用处于事件状态)

javascript - 将项目数据从 JSON 文件动态加载到 React 中

javascript - jQuery 获取所选对象的子对象

javascript - Bootstrap 模式弹出不弹出