J'écoute ajaxStart () et ajaxStop () pouraffiche / masque un spinner, et je fais quelques simulations AJAX dans JS pendant l’écriture des serveurs. Il appelle simplement une fonction pour générer des données fictives avec setTimeout (). Pour le moment, j’appelle manuellement hide () et show () sur la roulette, mais j’aimerais vraiment dire à JQuery quand je commence et arrête ma "demande", et que les événements se déroulent de cette façon, je ne cache donc pas accidentellement () la roulette pendant que une réal demande ajax est toujours en arrière-plan.
Cela peut-il être fait facilement?
MODIFIER: C’est le code sur lequel je me suis installé, le truc est de maintenir le JQuery.active
compter:
function fakeAJAX(f) {
if(jQuery.active++ === 0 ) {
jQuery.event.trigger("ajaxStart");
}
setTimeout(function () {
f();
if(!(--jQuery.active)) {
jQuery.event.trigger("ajaxStop");
}
}, Math.round(Math.random() * 3000 + 250));
}
Réponses:
6 pour la réponse № 1Selon le sources il vous suffit d'invoquer:
jQuery.event.trigger( "ajaxStart" );
et
jQuery.event.trigger( "ajaxStop" );
en conséquence.
http://jsfiddle.net/zerkms/7RVbz/