Reihenfolge von HTML-Elementen in einem Kontainer per jQuery ändern resultiert in einem leeren Kontainer

Die Ausgangssituation: Ich habe einen Kontainer, dessen (direkte) Kind-Elemente ich per jQuery eine neue Reihenfolge verpassen möchte. Dazu erzeuge ich mir einen Array, der alle betreffenden Elemente beinhaltet und ändere die Reihenfolge dieses Arrays. Dann gehe ich die Elemente des Arrays nacheinander durch und hänge sie am Ende des Kontainers wieder an (genauer: per .insertAfter() hinter das letzte Element) – das bedeutet, das Element wird aus dem DOM genommen und nach hinten verschoben. Danach sollte der Kontainer die gewünschte Reihenfolge haben.

Das Phänomen: Funktioniert wunderbar! Meistens jedenfalls. Aber hin und wieder – vielleicht bei jedem 10. Versuch – ist der Kontainer nach dieser beschriebenen Prozedur komplett leer und noch kann ich mir überhaupt keinen Reim darauf machen. Reproduziert in verschiedenen aktuellen Browsern (Firefox, Safari, Chrome, IE).

Meine Lösung: Ich prüfe jetzt einfach, ob direkt nach meiner Umsortier-Aktion die Elemente noch da sind. Falls nicht, schreibe ich die Elemente (die ja immer noch im Array sind) wieder in den Kontainer (diesmal per .append()). Scheint zu funktionieren.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>