Saya cenderung memiliki banyak ini dalam kode saya
if(shouldElementBeVisible)
$element.show()
else
$element.hide()
Apakah ada cara yang lebih elegan yang dikemas dengan javascript, jquery, atau underscore? Idealnya saya menginginkan sesuatu yang terlihat seperti ini
$element.showOrHideDependingOn(shouldElementBeVisible)
javascript
jquery
underscore.js
visibility
Aakil Fernandes
sumber
sumber
toggle
, tetapi pertanyaannya berbedaJawaban:
Rupanya Anda bisa meneruskan boolean ke
toggle
fungsi tersebutsumber
$element.toggle(!!shouldElementBeVisible)
untuk mencegah secara tidak sengaja mengenai salah satu "kelebihan" lainnya , kecuali tentu saja Anda sangat yakin bahwa variabel tersebut adalah nilai boolean.$element.toggle(shouldElementBeVisible == true)
."0"
dan"false"
diperlakukan sangat berbeda darifalse
bagaimanapun, jadi menurut saya perbedaan itu tidak terlalu penting - bahkan0
akan salah jika Anda ingin menyembunyikannya, karena semua waktu animasi yang ditetapkan tetapi visibilitas masih berubah.Ya ada!
Tanpa parameter apa pun,
toggle
cukup matikan visibilitas elemen (maksud saya bukanvisibility
properti) dan bergantung pada status elemen saat ini.Jika Anda memanggil
toggle
dengan parameter boolean, elemen akan ditampilkan jika adatrue
danhidden
jika yafalse
sumber
sumber
isShown
tersebut tidak relevan dengan$element
yang terlihat atau tidak? Tetapi variabel terpisah tidak terkait dengan elemen?isShown
menjadi sesuatu sepertishouldElementBeVisible
untuk membuatnya lebih jelasjQuery memiliki
toggle
: http://api.jquery.com/toggle/$element.toggle();
Ini akan menampilkan elemen jika tersembunyi, dan menyembunyikannya jika ditampilkan.
sumber
Fungsi
.toggle()
mengubahdisplay
elemen.Jika Anda ingin berubah
visibility
, saya sarankan menggunakan?:
operator. Untuk ini, pada CSS Anda, atur visibilitas ke keadaan asli, dan di JS sederhananya:sumber