Ankündigung

Einklappen
Keine Ankündigung bisher.

[JS] Divs nach Datum sortieren

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • cycap
    hat ein Thema erstellt [JS] Divs nach Datum sortieren.

    [JS] Divs nach Datum sortieren

    Hallo Leute,

    ich möchte gerne per JS ein paar Divs nach beinhaltendem Datum/Zeit sortieren:

    <div id="datensatz123"><span class="dat">2008-01-01 12:00:00</span> eins</div>
    <div id="datensatz200"><span class="dat">2008-01-01 13:00:00</span> zwei</div>
    <div id="datensatz100"><span class="dat">2008-01-01 14:00:00</span> drei</div>

    Das Datum hier wird per jscalendar vom User geändert und ich möchte onchange eine Sortierfunktion ausführen die mir die Divs nach Datum sortiert.

    Hat jemand eine Idee wie man das umsetzten könnte?

  • nikosch
    antwortet
    Mach doch einfach ein div mit Scrollbar, daneben einen fest positionierten Kalender, dessen Einträge sich je nach angeklicktem Datum einstellen. So würd ichs machen. Dieses ganze Kalenderein- und ausgeblende ist doch nicht benutzerfreundlich.

    Einen Kommentar schreiben:


  • cycap
    antwortet
    Schade, leider hat das ganze jetzt schon zu viel Zeit eingenommen und deshalb muss eine Konzeptänderung her ich kann meine Vorstellung hier also nicht weiter ausbauen. Trotzdem danke an euch

    Einen Kommentar schreiben:


  • cycap
    antwortet
    Zitat von tomtaz Beitrag anzeigen
    Hallo cycap, ich hab mir das jetzt auch mal angeguckt und benutze ebenfals FF3.

    Wenn man das Datum, des letzten Objektes ändern, passiert gar nichts. Es rutscht also nicht nach oben, wie ich doch glaube, dass er das sollte...
    Ähm mein FF3 macht das aber??? komisch... aber vielleicht lösen sich ja mit der IE-Problematik gleich mehrere Probleme auf einmal

    Einen Kommentar schreiben:


  • tomtaz
    antwortet
    Hallo cycap, ich hab mir das jetzt auch mal angeguckt und benutze ebenfals FF3.

    Wenn man das Datum, des letzten Objektes ändern, passiert gar nichts. Es rutscht also nicht nach oben, wie ich doch glaube, dass er das sollte...

    [edit]Den Kalender finde ich aber gut. Haste selber gemacht???

    Einen Kommentar schreiben:


  • cycap
    antwortet
    1: Was wird nicht richtig angezeigt?
    2: Im IE gehts nicht aus o.g. Gründen

    Einen Kommentar schreiben:


  • Montellese
    antwortet
    Hm ich verstehe jetzt nicht ganz, wo das Problem liegt. Sortiert wird richtig (sobald mal alle Daten richtig angezeigt werden, was am Anfang irgendwie nicht der Fall ist), nach dem Sortieren kann ich immernoch alle Daten ändern etc. Das einzige, was verloren geht, ist die Position des Kalender-Fensters. Ist das das Problem?

    Einen Kommentar schreiben:


  • cycap
    antwortet
    Habs euch mal als HTML-Version hochgeladen, probierts mal aus, im FF3 hab ichs getestet, da sollte es funktionieren...

    JS Sortierung

    Einen Kommentar schreiben:


  • cycap
    antwortet
    Zitat von Montellese Beitrag anzeigen
    Ich frage mich immernoch, ob es wirklich nötig ist den ganzen Inhalt von innerHTML zu ersetzen. Wäre es nicht viel einfacher einfach die angezeigten Daten in der richtigen Reihenfolge in den schon existierenden DIVs zu verteilen? Dann würde das Element auch für den Kalender nicht verloren gehen.
    Ja wie denn?

    EDIT:
    Achso du meinst ich habe 3 Datensätze und ändere einfach den Inhalt? Dann hab ich ja immer noch das Problem das die Buttons auch verschoben werden müssen....

    Einen Kommentar schreiben:


  • Montellese
    antwortet
    Ich frage mich immernoch, ob es wirklich nötig ist den ganzen Inhalt von innerHTML zu ersetzen. Wäre es nicht viel einfacher einfach die angezeigten Daten in der richtigen Reihenfolge in den schon existierenden DIVs zu verteilen? Dann würde das Element auch für den Kalender nicht verloren gehen.

    Einen Kommentar schreiben:


  • cycap
    antwortet
    Hilfe

    im FF klappt das ganze (auch wenn keine Positionsdaten vom ursprünglichen Element mehr ermittelt werden können) aber der IE streikt.

    Das Problem besteht darin das der Kalender beim Setup sich einmal das Element holt und als Objekt behält, was dann natürlich nicht mehr existiert

    Der IE versucht dann die Positionsdaten eines nicht existierenden Elements zu ermitteln => Error

    1ster Lösungs-Versuch: Kalender-Objekt auf null setzen und versuchen ein neues zu erstellen, fehlgeschlagen, ich hab keine Ahnung wie ich ein neues Kalenderobjekt RICHTIG erstelle

    Einen Kommentar schreiben:


  • cycap
    antwortet
    Nachtrag:

    das Problem ist gelöst ich hab einfach das onclick-Event in eine Variable gepeichert und nach dem innerHTML dem Objekt wieder zugewiesen

    Jetzt muss ich nur noch rausfinden was der Kalender an meinem Objekt noch so geändert hat, denn irgendwo muss der auch noch die Positionsdaten gespeichert haben, ne Idee wie ich das finde?

    Gruß
    Cy

    Einen Kommentar schreiben:


  • cycap
    antwortet
    Nein nein, an der ID ändert sich ja gar nichts. Das onClick-Event wird hier anscheinend vom Kalender-Script eingefügt und wenn ich das Element neu schreibe geht es verloren, aber das wäre doch bei createElement und appendChild das gleiche oder nicht?

    Einen Kommentar schreiben:


  • Montellese
    antwortet
    Hm wofür brauchst du denn bitte outerHTML? Wusste gar nicht, dass es das noch gibt. Also du meinst der Button verliert sein onclick-Event? Ja das ist leider so, wenn man den DOM mit innerHTML manipuliert. Kannst du die Buttons nicht alle Buttons jeweils mit removeChild() aus dem DOM entfernen und dann mit createElement und appendChild() neu einfügen? Dann sollte es auch wieder möglich sein die events anzufügen.

    Hm oder kannst du nicht einfach die IDs anpassen ohne überhaupt was rumzuschieben? Wenn ich das richtig verstehe ändern sich ja jeweils nur das Datum und damit die ID des Elements, das das Datum beinhaltet.

    Einen Kommentar schreiben:


  • cycap
    antwortet
    Ok, fast geschafft, man das ist echt übel...

    Jetzt hab ich nur noch ein (kleines) Problem. Sobald ich den Button zum Ändern des Datums mit verschiebe verliert der seine Funktion also man kann keinen Kalender nach dem ersten sortieren mehr aufrufen. Nehm ich den Button aus dem Sortiervorgang raus, funktioniert alles ohne Probleme. Ist halt nur ziehmlich doof wenn der Button zum Datensatz nen paar Zeilen weiter unten steht bei nem anderen Datensatz Hat jemand eine Idee?

    Einen Kommentar schreiben:

Lädt...
X