2017-04-26 56 views
3

我想顯示模式阿賈克斯後完成,這裏是我的代碼:可能在jQuery上點擊功能等待ajax完成然後做一些代碼?

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

    }); 

}); 

這是可能做到這一點?現在每個ajax完成後模式顯示。

謝謝。

回答

2

可以使用ajax請求,該請求寄存器的處理程序的.ajaxComplete()方法時Ajax請求是完成被調用。

更多here.

1

使用完整的事件,當你的Ajax調用完成。

$('.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) 
     { 

     } 
    }); 

}); 
-1

嘗試使用setTimeout。

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

原來OP問ajax完成時打開模式窗口。不是經過一段特定的時間。 –

0

我不知道你在做一個Ajax調用的方式,但我已經能夠與超級後全球

$ _ POST(phpfile.php,$_post(phpfile.php, {variables to send}, function)做你可以使用數據作爲函數的參數,這將是任何PHP相呼應,包括錯誤消息

0

感謝您Inspira的最後我這樣做。

全局變量:

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 = ""; 
     }  
}); 

希望是還好吧:-)

+1

但是,如果您的頁面中有多個ajax請求,則爲每個ajax調用觸發'$(document).ajaxComplete({})'。 –

+0

我知道,但只有一個,如果陳述延遲將是最小的。 – Hancs

相關問題