Wie funktioniert die show / hide Funktion von jquery?

8

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.

%Vor%

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?

    
jenswirf 23.01.2012, 10:26
quelle

1 Antwort

15

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 :

%Vor%

Wenn ein Element versteckt speichert es zuerst den aktuellen display value in einem Attribut data :

%Vor%

Und setzt dann einfach die Eigenschaft display auf none . Der wichtige Teil:

%Vor%

Hinweis

Der obige Code stammt aus jQuery Version 1.6.2 und kann in späteren Versionen geändert werden.

    
James Allardice 23.01.2012, 10:30
quelle

Tags und Links