Ich verwende Twitter Bootstrap und stelle fest, dass jQuery show()
oder ein fadeIn()
mit Klasse gekennzeichnetes DOM-Element nicht angezeigt wird hidden
, da die jQuery-Funktionen nur die display: none
Spezifikation entfernen . Das visibility
ist jedoch immer noch eingestellt hidden
.
Ich frage mich, wie ich das am besten umgehen kann.
- Entfernen Sie die
hidden
Klasse für das Element - Ändern Sie die Sichtbarkeitseigenschaft
- Überschreibe die versteckte Klasse in meinem eigenen CSS
Insbesondere möchte ich wissen, ob und warum es besser ist, dies mit jQuery oder CSS zu beheben.
jquery
twitter-bootstrap
Lim H.
quelle
quelle
visibility: hidden
vom Bootstrap.Antworten:
Die CSS-Klasse, die Sie suchen, ist
.collapse
. Dies setzt das Element aufdisplay: none;
Die Verwendung
$('#myelement').show()
funktioniert also einwandfrei.UPDATE: Bootstrap v3.3.6 hat .collapse zurück aktualisiert auf:
quelle
.slideDown()
,.fadeIn()
etc..hidden
in Bootstrap ist für Dinge , die Sie nie angezeigt werden sollen..collapse
Jetzt setzt auchvisibility: hidden;
Dadurch wird Ihr unsichtbares Element eingeblendet und die Klasse entfernt
http://jsfiddle.net/7qxVL/
Wenn Sie nicht wirklich möchten, dass das Element unsichtbar ist (dh den Speicherplatz einnimmt), möchten Sie möglicherweise .hidden neu definieren (ändern Sie in Ihrem lokalen CSS nicht die Bootstrap-Quelle oder noch besser in Ihrer lokalen WENIGER-Datei).
quelle
.hidden
für Elemente verwenden, die Sie mit Javascript anzeigen möchten. Verwenden Sie.collapse
stattdessen.Warnung:
bootstrap 3.3.0 hat gerade .collapse geändert in:
Was für jQuery.show () eine bahnbrechende Änderung ist, musste ich wieder auf Inlining zurückgreifen:
um jQuery wie folgt weiter zu verwenden:
Die einzige Klasse, die ich in Bootstrap 3.3.0 finden konnte, um nur 'display: none' anzuwenden, ist
quelle
.collapse('hide')
und.collapse('show')
statt jQuery-Methoden. Sie können die anfängliche Sichtbarkeit direkt im HTML über die Klassecollapse
(ausblenden) odercollapse in
( anzeigen) festlegen . Siehe getbootstrap.com/javascript/#collapse .Ich hatte das gleiche Problem. Ich habe diesen Patch verwendet:
Dann hatte ich ein anderes Problem, da meine Anwendung neue Elemente generiert und diese anhängt / voranstellt. Was ich schließlich getan habe, ist nach dem Generieren des neuen Elements, das ich tue:
quelle
Für mich war es, weil Bootstrap das verwendet
!important
Hack sowohl für das Verstecken als auch für das Verstecken von Klassen verwendet.Sie können also nicht die
show()
mit jquery bereitgestellten etc-Methoden verwenden. Stattdessen müssen Sie noch schrecklicheren Code überschreiben, der den Hacky-Code überschreibt.! wichtig ist ein letzter Ausweg und sollte wirklich nicht in einer Kernbibliothek wie Bootstrap verwendet werden.
quelle
Das funktioniert, aber ich werde die erste Antwort versuchen und die Klassen in ändern
.collapse
.quelle