J'ai tendance à en avoir beaucoup dans mon code
if(shouldElementBeVisible)
$element.show()
else
$element.hide()
Existe-t-il un moyen plus élégant avec javascript, jquery ou underscore? Idéalement, je veux quelque chose qui ressemble à ça
$element.showOrHideDependingOn(shouldElementBeVisible)
javascript
jquery
underscore.js
visibility
Aakil Fernandes
la source
la source
toggle
, mais c'est une question différenteRéponses:
Apparemment, vous pouvez simplement passer un booléen à la
toggle
fonctionla source
$element.toggle(!!shouldElementBeVisible)
pour éviter de heurter accidentellement l'une des autres "surcharges" , à moins bien sûr que vous ne soyez sûr que la variable est une valeur booléenne.$element.toggle(shouldElementBeVisible == true)
."0"
et"false"
sont traités très différemment defalse
toute façon, donc je ne pense pas que cette distinction compte vraiment - même0
serait incorrecte si vous voulez qu'elle soit cachée, puisque toutes ces durées d'animation définies, mais toujours inverser la visibilité.Oui il y a!
Sans aucun paramètre,
toggle
bascule simplement la visibilité des éléments (je ne parle pas de lavisibility
propriété) et dépend de l'état actuel de l'élément.Si vous appelez
toggle
avec un paramètre booléen, l'élément est affiché s'il l'esttrue
ethidden
s'il l'estfalse
la source
la source
isShown
n'est pas pertinente pour$element
être visible ou pas? Mais une variable distincte non liée à l'élément?isShown
quelque chose commeshouldElementBeVisible
pour le rendre plus évidentjQuery a
toggle
: http://api.jquery.com/toggle/$element.toggle();
Cela montrera l'élément s'il est caché et le cachera s'il est affiché.
la source
La fonction
.toggle()
change ledisplay
de l'élément.Si vous souhaitez modifier
visibility
, à la place, je vous suggère d'utiliser l'?:
opérateur. Pour cela, sur votre CSS, définissez la visibilité sur l'état d'origine, et dans le JS, mettez simplement:la source