Verschwindender Textbereich nach $ .slideDown ()

8

Ich habe ein Problem in IE7 und darunter, wo ein Formular, dass ich die Anzeige von $.slideUp() & amp; $.slideDown() , hat ein verschwindendes Textfeld.

Dies ist der Formularcode:

%Vor%

Ich schalte die Anzeige bei einem Klick in Javascript um (mit jQuery) mit: $('#addCommentForm').slideDown();

Mein Problem ist, dass in IE7 und darunter der Textbereich verschwindet, wenn das Formular fertig ist. Es taucht nur wieder auf, wenn ich den übergebenden Button (der mit jQueryUI .button() method gestylt wurde) überspringe.

Wenn ich sage verschwindet, ist es weg. Wenn man sich das HTML in den IE Dev Tools ansieht, ist HTML immer noch da, es wird überhaupt nicht gerendert.

So sehr ich IE auch hasse, ich muss es unterstützen: (

Hat jemand irgendwelche Ideen, warum das passiert? Oder wie kann ich es mildern?

    
Alastair Pitts 19.10.2010, 06:06
quelle

2 Antworten

22

Es gibt einige Möglichkeiten, dieses Problem zu lösen:

  • Versuchen Sie es mit einem anderen Element, z span anstelle von div element to herunterrutschen. Könnte ein IE-Rendering sein Fehler;
  • Ein anderer Ansatz besteht darin, zoom:1; zu setzen. in deinem CSS zu dem Element du bist versuchen, slideDown;
  • Sie können diese Einstellung auch lösen a min-height auf dein Schiebeelement in Dein CSS;
Júlio Paulillo 22.12.2010, 15:48
quelle
1

Das Festlegen einer Breite für das Element löst das Problem. Alle Lösungen von @paulillo funktionieren gut, aber wenn Sie die Breite einstellen, können Sie sich vor anderen Fehlern schützen.

slideDown setzt die Position vorübergehend auf absolut, was manchmal einen Bug hervorruft, der als "Jump" -Bug bekannt ist. Dies passiert, weil slideDown manchmal die Höhe nicht genau berechnen kann, wenn die Elementbreite im kurzen Moment absolut geändert wird. Ich hasse die Einstellung der Breite, es sei denn, ich muss, aber in diesem Fall, wenn Sie können, würde ich es empfehlen.

    
Kenzic 12.05.2011 20:34
quelle

Tags und Links