Ich habe ein kleines Problem mit einer Toggle-Sichtbarkeitsfunktion, die auf das hidden
-Attribut eines Elements wirkt. Das Problem ist, dass es keine Browserkompatibilität gibt.
Beim Durchsuchen dieses Problems bin ich auf die Methode zum Umschalten der style.display -Eigenschaft gestoßen.
%Vor% .. aber dies scheint suboptimal zu sein, weil Sie keine generische show / hide-Funktion haben können, die die Anzeigeeigenschaft auf block
setzt. Was ist, wenn das fragliche Element manchmal ein inline
oder etwas haben soll?
Wie löst zum Beispiel jQuery dieses Problem?
Er speichert den alten display
-Wert in einem data
-Attribut mit dem Namen olddisplay
und verwendet dann den Wert, um ihn wiederherzustellen, wenn das Element erneut angezeigt wird. Siehe die Implementierung hier . Sie können die Implementierung einer beliebigen jQuery-Methode auf dieser Site überprüfen.
In den folgenden Codeschnipsel habe ich die wichtige Zeile mit einem //LOOK HERE
Kommentar kommentiert.
Der wichtige Teil der Methode show
:
Wenn ein Element versteckt speichert es zuerst den aktuellen display
value in einem Attribut data
:
Und setzt dann einfach die Eigenschaft display
auf none
. Der wichtige Teil:
Hinweis
Der obige Code stammt aus jQuery Version 1.6.2 und kann in späteren Versionen geändert werden.
Tags und Links javascript jquery show-hide