/ / Wie fälsche ich AJAX-Start- / Endereignisse in JQuery? - Javascript, Abfrage

Wie fälsche ich AJAX-Start- / End-Ereignisse in JQuery? - Javascript, jQuery

Ich höre ajaxStart () und ajaxStop () zushow / hide a spinner, und ich mache ein paar AJAX-Mocks in JS, während Server geschrieben werden. Es ruft nur eine Funktion auf, um Mock-Daten mit einem setTimeout () zu generieren. Im Moment rufe ich einfach hide () und manuell auf show () auf dem Spinner, aber ich möchte JQuery wirklich nur mitteilen, wenn ich meine "Anfrage" starte und stoppe und die Ereignisse auf diese Weise durchlaufen, damit ich den Spinner währenddessen nicht versehentlich verstecke () ein echt Die Ajax-Anforderung wird weiterhin im Hintergrund ausgeführt.

Kann das einfach gemacht werden?

BEARBEITEN: Dies ist der Code, für den ich mich entschieden habe JQuery.active Anzahl:

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

Antworten:

6 für die Antwort № 1

Entsprechend der Quellen Sie müssen nur Folgendes aufrufen:

jQuery.event.trigger( "ajaxStart" );

und

jQuery.event.trigger( "ajaxStop" );

entsprechend.

http://jsfiddle.net/zerkms/7RVbz/