Einzelnen Beitrag anzeigen
  #6 (permalink)  
Alt 08.01.2010, 16:42
Plasm Plasm ist offline
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 13.02.2008
Beiträge: 52
Plasm befindet sich auf einem aufstrebenden Ast
Standard

@Thielo:
Ich benutze (meistens) auch jquery.
Bei Deiner Variante wird leider das "flacker"-Problem nicht gelöst, da beim Laden der Seite die Box offen ist und erst im Nachhinein geschlossen wird.

Allerdings habt ihr mich auf eine andere Idee gebracht: Da fast alle meine Scripte erst bei onload laufen, habe ich wohl schon total vergessen, dass es auch anders geht (wie in protonenbeschleuniger´s Beispiel). Ich habe nun folgende Struktur ausprobiert (vereinfacht dargestellt)

.closed {}
<div class="closed">
</div>
<script>
$('.closed').css('display', 'none');
</script>
weiteres html

Das minimiert den Zeitabstand zwischen "erstellen der Box" und "komplettes Laden der Seite". Das Flackern ist damit normalerweise nicht mehr zu sehen - allerdings kann es theoretisch immer noch auftreten (z.b wenn man ein "lag" zwischen den Zeilen </div> und <script> hat).

Habe dann mal probiert das Element zu verstecken bevor es abgeschlossen ist, also so:
.closed {}
<div class="closed">
<script>
$('.closed').css('display', 'none');
</script>
</div>
weiteres html

Und siehe da - das funktioniert. Hätte eigentlich vermutet, dass man erst auf das Tag zugreifen kann, wenn es abgeschlossen ist (also nach </div>) - aber das war wohl ein Irrtum.

Das scheint mir nun also eine praktikable und vernünftige Lösung zu sein.
Danke für eure Hilfe!




Übrigens: Die each-Funktion kannst Du Dir sparen:
$(".box").addClass("closed");
Beschreibung zu addClass():
Adds the specified class(es) to each of the set of matched elements.

Funktioniert mit jeder jquery-Funktion. each verwende ich nur selten
Mit Zitat antworten