Bootstrap modal不会在modal.hide()上关闭

时间:2019-04-20 14:52:20

标签: jquery ajax twitter-bootstrap modal-dialog

当程序正在等待jquery.ajax请求时,我正在使用引导程序模式在网站上显示加载的gif。在ajaxSend上,我显示Modal,而在ajaxStop上,我想关闭它,但是没有。

这是两个功能

$(document).ajaxSend(function(e, xhr, opt){
    console.log("starting");
    $('#ModalEingeloggtLaden').modal({//prevent modal to be closed by user
        backdrop: 'static',
        keyboard: false
    });
    var modal = $("#ModalEingeloggtLaden");
    modal.modal();
});
$(document).ajaxStop(function(){
    console.log("done");
    var modal = $("#ModalEingeloggtLaden");
    modal.modal("hide");
    console.log("hidden");
});

如果您需要了解更多代码,请告诉我。

我的想法是,两个函数的调用时间太早,因此在调用第二个函数时模态是不可见的,因此不能使其不可见。如果这可能是问题所在,那么有人是否有解决办法的想法?

谢谢。

编辑

我已经看过控制台,看来应该在关闭模态后加载gif,但是我不知道如何更改它...

解决方案

$(document).ajaxStart(function(e, xhr, opt){
    $('#ModalEingeloggtLaden').modal({//Verhindern, dass Laden Symbol weggedrückt wird
        backdrop: 'static',
        keyboard: false
    });
    var modal = $("#ModalEingeloggtLaden"); //Modal zum bestätigen setzen
    modal.modal("show");
});
$(document).ajaxStop(function(){
    var modal = $("#ModalEingeloggtLaden"); //Modal zum bestätigen setzen
    modal.on('shown.bs.modal', function (e) {
        modal.modal("hide");
    });
});

只需等待显示的事件,然后再隐藏模式,即可完美运行。

1 个答案:

答案 0 :(得分:0)

我只是想在这里找到解决方案。但是无论如何,看来您已经找到了解决方案。请找到以下内容:

https://plnkr.co/edit/ymIV4pXM5EUEjzgNkLEU?p=preview

[https://plnkr.co/edit/ymIV4pXM5EUEjzgNkLEU?p=preview][1]