Obwohl diese Frage schon oft beantwortet wurde, dachte ich, ich würde sie mit einer vollständigeren und solideren Antwort für zukünftige Benutzer ergänzen. Die Hauptantwort löst das Problem, aber ich glaube, es ist besser, einige der verschiedenen Möglichkeiten zu kennen / verstehen, Dinge zu zeigen / zu verbergen.
.
Ändern der Anzeige mit css ()
So habe ich es gemacht, bis ich einige dieser anderen Wege gefunden habe.
Javascript:
$("#element_to_hide").css("display", "none"); // To hide
$("#element_to_hide").css("display", ""); // To unhide
Vorteile:
- Versteckt und versteckt sich. Das ist alles.
Nachteile:
- Wenn Sie das Attribut "display" für etwas anderes verwenden, müssen Sie den Wert dessen, was er war, vor dem Ausblenden fest codieren. Wenn Sie also "Inline" hätten, müssten Sie dies tun,
$("#element_to_hid").css("display", "inline");sonst wird standardmäßig "Blockieren" oder was auch immer, in das es gezwungen wird, zurückgesetzt.
- Geeignet für Tippfehler.
Beispiel: https://jsfiddle.net/4chd6e5r/1/
.
Ändern der Anzeige mit addClass () / removeClass ()
Beim Einrichten des Beispiels für dieses Beispiel bin ich tatsächlich auf einige Fehler bei dieser Methode gestoßen, die sie sehr, sehr unzuverlässig machen.
CSS / Javascript:
.hidden {display:none}
$("#element_to_hide").addClass("hidden"); // To hide
$("#element_to_hide").removeClass("hidden"); // To unhide
Vorteile:
- Es versteckt sich ... manchmal. Siehe p1 im Beispiel.
- Nach dem Ausblenden wird wieder der vorherige Anzeigewert verwendet ... manchmal. Siehe p1 im Beispiel.
- Wenn Sie alle versteckten Objekte greifen möchten, müssen Sie dies nur tun
$(".hidden").
Nachteile:
- Wird nicht ausgeblendet, wenn der Anzeigewert direkt im HTML-Code festgelegt wurde. Siehe p2 im Beispiel.
- Wird nicht ausgeblendet, wenn die Anzeige mit css () in Javascript eingestellt ist. Siehe Seite 3 im Beispiel.
- Etwas mehr Code, da Sie ein CSS-Attribut definieren müssen.
Beispiel: https://jsfiddle.net/476oha8t/8/
.
Ändern der Anzeige mit toggle ()
Javascript:
$("element_to_hide").toggle(); // To hide and to unhide
Vorteile:
- Funktioniert immer.
- So müssen Sie sich vor dem Umschalten keine Gedanken darüber machen, in welchem Zustand es sich befand. Die offensichtliche Verwendung hierfür ist die Umschalttaste ....
- Kurz und einfach.
Nachteile:
- Wenn Sie wissen müssen, in welchen Status es wechselt, um etwas zu tun, das nicht direkt damit zusammenhängt, müssen Sie mehr Code (eine if-Anweisung) hinzufügen, um herauszufinden, in welchem Status es sich befindet.
- Ähnlich wie bei der vorherigen Con müssen Sie eine Prüfung (eine if-Anweisung) hinzufügen, wenn Sie eine Reihe von Anweisungen ausführen möchten, die toggle () zum Ausblenden enthalten, aber nicht wissen, ob es bereits ausgeblendet ist. Um herauszufinden, ob es bereits versteckt ist, überspringen Sie es. Siehe Seite 1 des Beispiels.
- Im Zusammenhang mit den vorherigen 2 Nachteilen kann die Verwendung von toggle () für etwas, das speziell ausgeblendet oder speziell angezeigt wird, für andere, die Ihren Code lesen, verwirrend sein, da sie nicht wissen, auf welche Weise sie umschalten werden.
Beispiel: https://jsfiddle.net/cxcawkyk/1/
.
Ändern der Anzeige mit hide () / show ()
Javascript:
$("#element_to_hide").hide(); // To hide
$("#element_to_hide").show(); // To show
Vorteile:
- Funktioniert immer.
- Nach dem Ausblenden wird wieder der vorherige Anzeigewert verwendet.
- Sie werden immer wissen, in welchen Status Sie wechseln, damit Sie:
- Sie müssen keine if-Anweisungen hinzufügen, um die Sichtbarkeit zu überprüfen, bevor Sie den Status ändern, wenn der Status von Bedeutung ist.
- wird andere, die Ihren Code lesen, nicht verwirren, in welchen Status Sie wechseln, wenn der Status von Bedeutung ist.
- Intuitiv.
Nachteile:
- Wenn Sie einen Umschalter imitieren möchten, müssen Sie zuerst den Status überprüfen und dann in den anderen Status wechseln. Verwenden Sie stattdessen toggle () für diese. Siehe Seite 2 des Beispiels.
Beispiel: https://jsfiddle.net/k0ukhmfL/
.
Insgesamt würde ich sagen, dass es am besten ist, hide () / show () zu sein, es sei denn, Sie benötigen es ausdrücklich, um umzuschalten. Ich hoffe, Sie fanden diese Informationen hilfreich.
return falseinonclick?