Tiendo a tener muchos de estos en mi código
if(shouldElementBeVisible)
$element.show()
else
$element.hide()
¿Hay alguna forma más elegante de empaquetar con javascript, jquery o guión bajo? Idealmente, quiero algo que se parezca a esto
$element.showOrHideDependingOn(shouldElementBeVisible)
javascript
jquery
underscore.js
visibility
Aakil Fernandes
fuente
fuente

toggle, pero es una pregunta diferenteRespuestas:
Aparentemente, puede pasar un booleano a la
togglefunciónfuente
$element.toggle(!!shouldElementBeVisible)para evitar golpear accidentalmente una de las otras "sobrecargas" , a menos que, por supuesto, esté muy seguro de que la variable es un valor booleano.$element.toggle(shouldElementBeVisible == true)."0"y"false"se tratan de manera muy diferente a comofalselo hacen de todos modos, por lo que no creo que la distinción realmente importe, incluso0sería incorrecta si desea que se oculte, ya que todos esos tiempos de animación establecidos pero aún así cambian la visibilidad.¡Sí hay!
Sin ningún parámetro,
togglesimplemente alterna la visibilidad de los elementos (no me refiero a lavisibilitypropiedad) y depende del estado actual del elemento.Si llama
togglecon un parámetro booleano, el elemento se muestra si estrueyhiddensi esfalsefuente
fuente
isShownno es relevante para$elementser visible o no? ¿Pero una variable separada no relacionada con el elemento?isShownshouldElementBeVisiblejQuery tiene
toggle: http://api.jquery.com/toggle/$element.toggle();Esto mostrará el elemento si está oculto y lo ocultará si se muestra.
fuente
La función
.toggle()cambia eldisplaydel elemento.Si desea cambiar
visibility, en cambio, le sugiero que use el?:operador. Para esto, en su CSS, establezca la visibilidad en el estado original, y en el JS simplemente ponga:fuente