Hallo Bernd, erst mal vielen Dank für deine ausführliche und nachvollziehbare Antwort. Das mit der komplexen Selektion stimmt schon, vermutlich durchs "rumprobieren" der letzte Stand. Aber es macht natürlich Sinn das zu vereinfachen!
Ich teste mal deinen Vorschlag und geb' wieder feedback. Der Tipp mit der "racing condition" ist gut. Versuche es ggf. mal mit einem Timeout. Gruß, Johannes. -----Ursprüngliche Nachricht----- Von: typo3-german-boun...@lists.typo3.org [mailto:typo3-german-boun...@lists.typo3.org] Im Auftrag von bernd wilke Gesendet: Freitag, 26. Juni 2015 10:25 An: typo3-german@lists.typo3.org Betreff: Re: [TYPO3-german] OT jQuery: Nach .hide() zeigt .show() keinen Inhalt mehr an Am 26.06.15 um 08:26 schrieb Johannes C. Laxander: > Hallo, > > > > der Betreff beschreibt das Problem schon ziemlich genau. Gibt es dafür > irgend einen Grund? > > > > Vereinfachte HTML Struktur: > > > > <div class="slider panel1"> > > <img ...> > > <img ...> > > <img ...> > > </div> > > <div class="slider panel2"> > > <img ...> > > <img ...> > > <img ...> > > </div> > > > > CSS Code: > > > > slider { display: block;} > > > > JavaScript Code: > > > > $("div[class*='slider']").hide(); > > $("div[class*='slider']:first").show(); > > > > /* Sichtbarkeit wechseln */ > > $("div[class*='slider']").hide(); > > $("div[class*='panel2']").show(); > > > > Wenn ich nun mit JS über die Console im Chrome die Sichtbarkeit der > beiden Panels wechseln möchte wird zwar 'panel1' nicht mehr angezeigt, 'panel2' > aber auch nicht (hat allerdings eine unbekannte Höhe). > > > > Eigenartig ist, dass, wenn ich ALLE vier Befehle über die Console im > Chrome ausführe, das Problem nicht auftritt. > > > > Gibt es dafür irgend eine Erklärung, oder noch besser eine Lösung!?? vielleicht gibt es eine racing condition? (das hide() hat noch nicht alle Elemente versteckt, während das Show das eine schon sichtbar gemacht hat, und sofort danach wird es vom noch laufenden hide wieder versteckt. was mir auffällt ist die recht komplexe selektion. warum nicht einfach: $('.slider').hide(); $('.slider:first').show(); /* Sichtbarkeit wechseln */ $('.slider').hide(); $('.panel2').show(); was jetzt aber nicht unbedingt so viel ändern sollte. als Ausweg: nicht alle verstecken, sondern nur das aktuell sichtbare. dafür dann eine Klasse dynamisch vergeben: $('.slider:first').show().addClass('active'); $('.slider.active').hide().removeClass('active'); $('.panel2').show().addClass('active'); bernd -- http://www.pi-phi.de/cheatsheet.html _______________________________________________ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german _______________________________________________ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german