2011-11-25 9 views

risposta

16

Si dovrebbe usare $.ajaxComplete();

$(document).ajaxComplete(function() { 
    alert("compete"); 
}); 

questo dovrebbe essere attivato dopo ogni Ajax chiamata effettuata sulla pagina

altrimenti si utilizza ajax() e impostare la proprietà completa

$.ajax({ 
    url: "myurl", 
    complete: function(){ 
       alert("complete"); 
      } 
    //set all the other options as usual 
1

Se vuoi fare questo per una chiamata particolare, quindi la funzione complete è probabilmente quello che ti serve. Se vuoi che questo sia globale, per tutte le chiamate ajax, la risposta di Nicola dovrebbe essere ciò di cui hai bisogno.

Ecco il jQuery documentation per le chiamate Ajax.

5

È possibile utilizzare il callback a qualsiasi dei metodi jQuery AJAX per ritardare l'esecuzione di un'altra funzione fino al completamento della richiesta.

Esempio:

$.post('/some/url', somedata, function() { 
     // put the code you want to execute on completion here 
    }); 

Per scenari più complessi, utilizzare il ajax metodo effettivo che ti dà ganci per il successo, il completamento, errori e altri eventi. In genere, avresti solo bisogno di successo ed errore.

$.ajax('/some/url', { 
     data: somedata, 
     type: 'post', 
     success: function(result) { 
      // success code execution here 
     }, 
     error: function(xhr,status,error) { 
      // error code here 
     }, 
     complete: function(xhr,status) { 
      // completion code here 
     } 
    }); 
Problemi correlati