2009-09-16 16 views
9

Ho una funzione di caricamento e vorrei che il codice scrivesse un codice html in un div durante il caricamento e, al termine, per visualizzare la pagina. Ho visto alcune piccole annotazioni sugli eventi ajaxStart e ajaxComplete, tuttavia non sono sicuro di come implementarle.Come chiamare jquery ajaxStart + ajaxComplete

Ecco il jQuery Sto pensando di usare, però non è sicuro come implementare all'interno del codice che ho attualmente ...

$(document).ajaxStart(function(){ 
    $('#content').html("Loading Content..."); 
    }); 

Ecco il jquery corrente sto usando:

//Load content 
$(".load").click(function(){ 
    $("#content").empty();   
    loadName = $(this).attr("id"); 
    $("#content").load("/content/" + loadName + ".php"); 
    }); 

risposta

17

Se si tratta di un singolo div e si desidera aggiornare il suo contenuto con un messaggio/indicatore di caricamento, è possibile farlo in questo modo:

$("#content").html('<strong>Loading...</strong>') 
      .load("/content/" + loadName + ".php"); 

Non utilizzare lo ajaxStart e ajaxStop/ajaxCompleteglobal events a meno che non si disponga di un indicatore di caricamento comune per tutte le chiamate ajax. Detto questo, si può fare come segue:

$("#loading").bind("ajaxStart", function(){ 
    $(this).show(); 
}).bind("ajaxStop", function(){ 
    $(this).hide(); 
}); 

dove l'elemento loading è quello che vuoi rivelare durante una chiamata AJAX.

+0

a volte il contenuto viene caricato così velocemente, che il messaggio Caricamento in corso ... non diventa nemmeno visibile.Come impostiamo un intervallo di tempo per quello, in modo che gli utenti possano vedere che qualcosa sta caricando .... – defau1t

Problemi correlati