Hallo Auge!
Ich habe einen klitzekleinen gefunden, den du mir hoffentlich erklären kannst. Wenn ich vor dem Eröffnungsposting das Symbol zum Aus- und Einklappen des Threads geklickt habe, musste ich das bei molilys Skript immer zweimal machen. Erst beim zweiten Klick reagierte das Skript und ja, ich habe jeweils beide Male das Icon getroffen. :-)
Bei deinem Skript ist mir bei der Schließe-alle-gelesenen-Threads-per-Hand-Orgie sofort aufgefallen, dass ich nur einmal klicken muss (wie ich es auch erwarte). Hast du da etwas geändert und wenn ja, was?
Hmmm ..., ich bin mir nicht ganz sicher, ob ich den geschilderten Fall richtig verstanden habe, aber ... .
Molilys Skript hat sich gar nicht um das Auf-/ Zuklappen der Threads gekümmert.
Ok, dann nicht. Komischer Zufall, dass es so war, dass mit Molilys Skript zwei einzelne Klicks auf das Auf-und-Zuklapp-Symbol nötig waren, mit deinem aber nicht.
Nein, kein Zufall ...! ;-)
Ohne 'mein Skript' hast du die "normale" Funktionalität des Forenskripts (, die abhängig von deinen Benutzer-EInstellungen ist). Dabei sind dann ggf. zwei Klicks nötig, bis der Browser die Seite neu rendert und den Thread dann als geschlossen anzeigt.
Mein Skript "überschreibt" diese Funktion komplett mit einer eigenen. Da keine Kommunikation mit dem Server stattfinden muss, sondern alles direkt per JS im Browser abläuft, reicht hierbei ein Klick.
Der "Knackpunkt" dabei ist aber, dass man immer nur jeweils_einen_Thread auf- oder zuklappen kann, und jedes Mal eine "Kommunikation" (Request/ XMLHttpRequest) mit dem Server erforderlich ist.
Wenn ich auf das Symbol für einen Thread klicke, ist es das Verhalten, das ich erwarte. Dass das bei dir grundsätzlich anders funktionieren soll, ist schon klar.
Aber aufgrund der (neuen) Möglichkeit_alle_Threads auf einmal auf-, bzw. zuklappen zu können, halte ich das durchaus für eine akzeptable Variante.
Wenn man das will. Wenn die Einstellung so ist, dass per se alle Threads zugeklappt sind, die vollständig gelesen sind, braucht man das ja nicht. Wo wir gerade dabei sind. Folgendes Szenario:
Beim laden der Seite sind ungelesene Postings vorhanden. Diese lese ich und die Postings gelten folglich CSS-seitig als gelesen. Ob browserseitig a:visited oder, per JS gesetzt, a.visited gültig ist, habe ich allerdings nicht geprüft.
Das "Verhalten" hierbei kann, abhängig von den jeweiligen Benutzer-EInstellungen, aber stark variieren (Thread-, Listen- oder Nested-Ansicht, bei Nested alle Postings des Threads als gelesen markieren).
Wenn ich den Thread über das Symbol vor dem Eröffnungsposting schließen will, bekomme ich die Meldung, dass ungelesene Postings sind. Dies, obwohl ich die Postings gelesen habe.
Und wie bist du zurück auf die Hauptseite gekommen?
Wenn du den Back-Button deines Browsers verwendet hast, dann wurde die Hauptseite nicht neu geladen, wodurch auch die "gelesen" Markierung noch nicht vorhanden ist. Ein Reload der Seite schafft Abhilfe.
Meine Vermutung ist nun, dass die serverseitige Markierung mit der Klasse .visited nicht sofort gesetzt wird. Funktioniert das nicht so, dass per JS die Klasse gesetzt und die Nachricht, dass das Posting geöffnet wurde, per AJAX an den Server gesendet wird?
Keine Ahnung! Das musst du am besten mal Christian Kruse (ck) fragen ...! ;-)
BTW: Hast du die Version 1.1 eingebunden, oder noch die erste Version?
Gruß
Gunther