Costumo ter muitos deles no meu código
if(shouldElementBeVisible)
$element.show()
else
$element.hide()
Existe alguma forma mais elegante empacotada com javascript, jquery ou sublinhado? Idealmente, eu quero algo parecido com isto
$element.showOrHideDependingOn(shouldElementBeVisible)
javascript
jquery
underscore.js
visibility
Aakil Fernandes
fonte
fonte
toggle
, mas é uma pergunta diferenteRespostas:
Aparentemente, você pode simplesmente passar um booleano para a
toggle
funçãofonte
$element.toggle(!!shouldElementBeVisible)
para evitar bater acidentalmente em uma das outras "sobrecargas" , a menos, é claro, que você tenha certeza de que a variável é um valor booleano.$element.toggle(shouldElementBeVisible == true)
."0"
e"false"
são tratados de forma muito diferente defalse
qualquer maneira, então eu não acho que essa distinção realmente importe - até0
seria incorreto se você quiser que ele seja escondido, uma vez que todos aqueles tempos de animação definidos, mas ainda assim invertem a visibilidade.Sim existe!
Sem nenhum parâmetro,
toggle
apenas alterna a visibilidade dos elementos (não me refiro àvisibility
propriedade) e depende do estado atual do elemento.Se você chamar
toggle
com um parâmetro booleano, o elemento será mostrado se fortrue
ehidden
se forfalse
fonte
fonte
isShown
não é relevante para$element
ser visível ou não? Mas uma variável separada não relacionada ao elemento?isShown
para algo comoshouldElementBeVisible
para tornar mais óbviojQuery tem
toggle
: http://api.jquery.com/toggle/$element.toggle();
Isso mostrará o elemento se estiver oculto e ocultará se estiver mostrado.
fonte
A função
.toggle()
muda odisplay
do elemento.Se você quiser mudar
visibility
, em vez disso, sugiro usar a?:
operadora. Para isso, no seu CSS, defina a visibilidade para o estado original, e no JS basta colocar:fonte