Mam ich dużo w swoim kodzie
if(shouldElementBeVisible)
$element.show()
else
$element.hide()
Czy jest jakiś bardziej elegancki sposób w pakiecie z javascript, jquery lub podkreśleniem? Idealnie chciałbym coś, co wygląda tak
$element.showOrHideDependingOn(shouldElementBeVisible)
javascript
jquery
underscore.js
visibility
Aakil Fernandes
źródło
źródło
toggle
, ale jest to inna kwestiaOdpowiedzi:
Najwyraźniej możesz po prostu przekazać wartość logiczną do
toggle
funkcjiźródło
$element.toggle(!!shouldElementBeVisible)
aby zapobiec przypadkowemu uderzeniu jednego z innych „przeciążeń” , chyba że oczywiście masz pewność, że zmienna jest wartością logiczną.$element.toggle(shouldElementBeVisible == true)
."0"
i"false"
są traktowane zupełnie inaczej niż wfalse
każdym razie, więc nie sądzę, że to rozróżnienie naprawdę ma znaczenie - nawet0
byłoby niepoprawne, gdybyś chciał, aby było ukryte, ponieważ wszystkie te czasy animacji są ustawione, ale nadal mają odwróconą widoczność.Tak jest!
Bez żadnych parametrów
toggle
po prostu przełącza widoczność elementów (nie mam na myślivisibility
właściwości) i zależy od aktualnego stanu elementu.Jeśli wywołujesz
toggle
z parametrem boolowskim, element jest wyświetlany, jeśli tak jesttrue
ihidden
jeśli jestfalse
źródło
źródło
isShown
nie ma znaczenia dla$element
bycia widocznym czy nie? Ale osobna zmienna niezwiązana z elementem?isShown
na coś w rodzaju,shouldElementBeVisible
aby było to bardziej oczywistejQuery ma
toggle
: http://api.jquery.com/toggle/$element.toggle();
Spowoduje to wyświetlenie elementu, jeśli jest ukryty, i ukrycie go, jeśli jest pokazany.
źródło
Funkcja
.toggle()
zmieniadisplay
element.Jeśli chcesz to zmienić
visibility
, sugerowałbym użycie?:
operatora. W tym celu w swoim CSS ustaw widoczność na pierwotny stan, aw JS po prostu umieść:źródło