Ich neige dazu, viele davon in meinem Code zu haben
if(shouldElementBeVisible)
$element.show()
else
$element.hide()
Gibt es eine elegantere Art, mit Javascript, JQuery oder Unterstrich verpackt zu sein? Idealerweise möchte ich etwas, das so aussieht
$element.showOrHideDependingOn(shouldElementBeVisible)
javascript
jquery
underscore.js
visibility
Aakil Fernandes
quelle
quelle
toggle
, aber es ist eine andere FrageAntworten:
Anscheinend können Sie der
toggle
Funktion einfach einen Booleschen Wert übergebenquelle
$element.toggle(!!shouldElementBeVisible)
, um zu verhindern, dass versehentlich eine der anderen "Überladungen" getroffen wird , es sei denn, Sie sind sich sehr sicher, dass die Variable ein boolescher Wert ist.$element.toggle(shouldElementBeVisible == true)
."0"
und"false"
werden ganz anders behandelt alsfalse
sowieso, daher denke ich nicht, dass Unterscheidung wirklich wichtig ist -0
wäre sogar falsch, wenn Sie möchten, dass sie ausgeblendet wird, da all diese Animationszeiten festgelegt sind, aber dennoch die Sichtbarkeit umkehren.Ja da ist!
Schaltet ohne Parameter
toggle
einfach die Sichtbarkeit der Elemente um (ich meine nicht dievisibility
Eigenschaft) und hängt vom aktuellen Status des Elements ab.Wenn Sie
toggle
mit einem booleschen Parameter aufrufen , wird das Element angezeigt, wenn dies der Fall isttrue
undhidden
wenn dies der Fall istfalse
Quelle
quelle
isShown
ist also nicht relevant für das$element
Sichtbare oder nicht? Aber eine separate Variable, die nicht mit dem Element zusammenhängt?isShown
etwas umbenannt werden ,shouldElementBeVisible
um es offensichtlicher zu machenjQuery hat
toggle
: http://api.jquery.com/toggle/$element.toggle();
Dadurch wird das Element angezeigt, wenn es ausgeblendet ist, und ausgeblendet, wenn es angezeigt wird.
quelle
Die Funktion
.toggle()
ändert diedisplay
des Elements.Wenn Sie
visibility
stattdessen ändern möchten , würde ich die Verwendung des?:
Operators vorschlagen . Stellen Sie dazu in Ihrem CSS die Sichtbarkeit auf den ursprünglichen Zustand ein und geben Sie im JS einfach Folgendes ein:quelle