Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以在jQuery中的点击功能中等待ajax完成,然后执行一些代码?_Javascript_Jquery_Ajax_Modal Dialog_Bootstrap Modal - Fatal编程技术网

Javascript 是否可以在jQuery中的点击功能中等待ajax完成,然后执行一些代码?

Javascript 是否可以在jQuery中的点击功能中等待ajax完成,然后执行一些代码?,javascript,jquery,ajax,modal-dialog,bootstrap-modal,Javascript,Jquery,Ajax,Modal Dialog,Bootstrap Modal,我想在ajax完成后显示模式,以下是我的代码: $('.mymodalbtn').on('click', function (e) { modalWindow = $(this).attr('data-target'); // alert(modalWindow); $(document).ajaxStop(function () { //0 === $.active $(modalWindow).modal('show');

我想在ajax完成后显示模式,以下是我的代码:

$('.mymodalbtn').on('click', function (e) {
    modalWindow = $(this).attr('data-target');
    // alert(modalWindow);
    $(document).ajaxStop(function () {
         //0 === $.active
        $(modalWindow).modal('show');

    });

});
有可能吗?现在,在每次ajax完成后显示模态


谢谢。

您可以使用
ajax
请求的
.ajaxComplete()
方法,当
ajax
请求完成时,该方法注册要调用的处理程序


阅读更多内容

在ajax调用完成时使用complete事件

$('.mymodalbtn').on('click', function (e) {
    modalWindow = $(this).attr('data-target');

    $.ajax({
        type: 'GET',
        url: 'your_url',
        success: function (responseData, textStatus) {

        },
        complete: function (textStatus) {
            $(modalWindow).modal('show');
        },
        error: function (responseData)
        {

        }
    });

});
尝试使用setTimeout

setTimeout(function(){
   $('#mymodal').modal('show');
},4000);

我不确定您执行ajax调用的方式,但我已经能够使用post super global来实现这一点


$\u post(phpfile.php,
$\u post(phpfile.php,{variables to send},function)
您可以使用数据作为函数的参数,php会回显任何内容,包括错误消息

是的,这是可能的。您可以在

中使用或,谢谢您的启发最后我这样做了

全局变量:

window.modal = "";
点击功能:

$('.mymodalbtn').on('click', function (e) {
    modalWindow = $(this).attr('data-target');     
    window.modal = modalWindow;   

});
和ajax完成:

$(document).ajaxComplete(function (event, request, settings) {
       if(window.modal != ""){
           $(window.modal).modal('show');
           window.modal = "";
       }    
});

希望一切正常:-)

最初的OP要求在ajax完成时打开一个模式窗口。但如果你的页面中有多个ajax请求,那么每次ajax调用都会触发
$(document).ajaxComplete({})
。我知道,但只有一个if语句,所以延迟最小。