如何在用户点击bootstrap模式对话框之外时捕获事件?

时间:2016-09-08 13:48:36

标签: javascript jquery asp.net-mvc-5

情景

  1. 我点击按钮
  2. 对服务器进行Ajax调用
  3. 返回数据并显示模态
  4. 问题

    当用户点击关闭按钮或" X"在角落里,我通过为这两个元素分配一个类并为这个类分配一个事件来捕获这个事件。

    代码

    $(document).on("click", ".dialogTankClose", function() {
        //some code
    })
    

    我的问题是,当用户在对话框外点击或按下" escape"时,我无法弄清楚如何捕获。

    $(document).on("click", "modalCloseEvent",function(){
    // how to catch this?
    })
    

    我怎么能抓住这个?

1 个答案:

答案 0 :(得分:2)

Bootstrap模式在关闭时引发一个事件,您可以挂钩:hidden.bs.modal。无论模态如何关闭,此事件都会触发。试试这个:

$('#bootstrapModal').on("hidden.bs.modal", function() {
    $.automation.worker.bindIntervalEvent("#TanksContent", "/Tank/GetTanks", function () {
        $.automation.tanks.tableInit();
    });
});

如果模态动态添加到DOM,则可以使用委托事件处理程序:

$(document).on("hidden.bs.modal", '#bootstrapModal', function() {
    $.automation.worker.bindIntervalEvent("#TanksContent", "/Tank/GetTanks", function () {
        $.automation.tanks.tableInit();
    });
});

Bootstrap documentation

中的更多信息