2012-03-30 18 views
1

Ich habe eine Seite, wo der Besucher eine Funktion initiiert, die auf zahlreichen Elementen auf der Seite click() ausführt. Jedes click() bewirkt wiederum, dass Daten vom Server geladen und im gesamten DOM angezeigt werden.Javascript überprüfen, ob alle Klicks Laden Elemente geladen haben

Was ist der beste Weg zu sehen, ob jedes einzelne Element Daten geladen hat? Angenommen, meine Testmethode geladen gegen nicht geladen ist "elementAlpha" .length: 1 == NICHT geladen, sonst OK.

BEARBEITEN: Sobald alle meine Daten geladen sind, möchte ich, dass die Seite automatisch eine weitere Funktion ohne weitere Benutzereingaben ausführt - deshalb muss ich den Test für alle Elemente automatisieren, bevor diese Funktion ausgeführt wird. Also mein Ende Spiel ist:

Benutzer führt clickAll()

Funktion clickAll: (1) Klicken Sie auf klicken ... (2) hat alles fertig geladen? NO-> keep waiting, YES-> Ausführen nextStep()

Ich verstehe die Verwendung von Event Listeners ist der Weg zu gehen, aber ich kann nicht scheinen, das herauszufinden (looping die Wartezeit, nach meinem CPU-Fan, ist falsch Weg zu gehen).

+2

sagen kann nichts ohne den Code, dass Laden von Daten vom Server. –

+0

Ich habe meine Antwort aktualisiert –

Antwort

1

Nun könnten Sie Ihre Belastungselemente in einem .ajaxComplete umschließen()

$('.log').ajaxComplete(function() { 
$(this).text('Triggered ajaxComplete handler.'); 
}); 

Damit Sie das Verhalten Ihrer Zusatzfunktion auslösen, wenn alle Ajax-Ereignisse auf einem bestimmten Container/Selektor fertig sind.

EDIT:

In diesem Fall, dass Sie immer noch die Verwendung von jQuery.ajaxStop machen kann(). Es wird ausgelöst, wenn alle deine Ajax-Ereignisse abgeschlossen sind.

http://api.jquery.com/ajaxStop/

$('.log').ajaxStop(function() { 
$(this).text('Triggered ajaxStop handler.'); 
}); 
+0

Meine Elemente werden durch Ebenen der serverseitigen Rekursion erstellt, die ich zu diesem Zeitpunkt lieber nicht durcheinander bringen möchte, daher möchte ich nur etwas JS-Arbeit machen, sobald alles gesagt und getan ist ... – lioman

+0

Danke AjaxStop hat es geschafft. – lioman

Verwandte Themen