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
toggle
funció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 comofalse
lo hacen de todos modos, por lo que no creo que la distinción realmente importe, incluso0
serí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,
toggle
simplemente alterna la visibilidad de los elementos (no me refiero a lavisibility
propiedad) y depende del estado actual del elemento.Si llama
toggle
con un parámetro booleano, el elemento se muestra si estrue
yhidden
si esfalse
fuente
fuente
isShown
no es relevante para$element
ser visible o no? ¿Pero una variable separada no relacionada con el elemento?isShown
shouldElementBeVisible
jQuery 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 eldisplay
del 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