Bu soru daha önce birçok kez cevaplanmış olmasına rağmen, gelecekteki kullanıcılar için daha eksiksiz ve sağlam bir cevapla ekleyeceğimi düşündüm. Ana cevap sorunu çözüyor, ancak bir şeyleri göstermenin / gizlemenin çeşitli yollarını bilmenin / anlamanın daha iyi olabileceğine inanıyorum.
.
Css () kullanarak ekranı değiştirme
Diğer yollardan bazılarını bulana kadar bunu yapardım.
JavaScript:
$("#element_to_hide").css("display", "none"); // To hide
$("#element_to_hide").css("display", ""); // To unhide
Artıları:
- Gizler ve gizler. Bu kadar.
Eksileri:
- "Display" niteliğini başka bir şey için kullanırsanız, gizlenmeden önceki değerinin değerini kodlamanız gerekir. Eğer "satır içi" olsaydı, bunu yapmak zorunda kalırsın,
$("#element_to_hid").css("display", "inline");
aksi takdirde varsayılan olarak "bloke" ya da zorlanacak başka bir yere geri dönecektir.
- Kendini yazım hatalarına verir.
Örnek: https://jsfiddle.net/4chd6e5r/1/
.
AddClass () / removeClass () kullanarak görüntüyü değiştirme
Bunun için örnek oluştururken, aslında bu yöntemde çok çok güvenilmez kılan bazı kusurlarla karşılaştım.
Css / JavaScript:
.hidden {display:none}
$("#element_to_hide").addClass("hidden"); // To hide
$("#element_to_hide").removeClass("hidden"); // To unhide
Artıları:
- Gizler .... bazen. Örnekteki p1'e bakın.
- Gösterildikten sonra, önceki ekran değerini kullanmaya geri döner .... bazen. Örnekteki p1'e bakın.
- Tüm gizli nesneleri almak istiyorsanız, yapmanız gerekir
$(".hidden")
.
Eksileri:
- Görüntüleme değeri doğrudan html üzerinde ayarlanmışsa gizlenmez. Örnek üzerindeki p2'ye bakın.
- Ekran css () kullanılarak javascript olarak ayarlanmışsa gizlenmez. Örnekteki p3'e bakın.
- Biraz daha fazla kod çünkü bir css niteliği tanımlamanız gerekiyor.
Örnek: https://jsfiddle.net/476oha8t/8/
.
Toggle () kullanarak ekranı değiştirme
JavaScript:
$("element_to_hide").toggle(); // To hide and to unhide
Artıları:
- Her zaman çalışır.
- Geçiş yapmadan önce hangi durum hakkında endişelenmenize gerek yok. Bunun bariz kullanımı .... geçiş düğmesi içindir.
- Kısa ve basit.
Eksileri:
- Doğrudan ilişkili olmayan bir şey yapmak için hangi duruma geçtiğini bilmeniz gerekiyorsa, hangi durumda olduğunu bulmak için daha fazla kod (bir if ifadesi) eklemeniz gerekir.
- Önceki con'lara benzer şekilde, gizleme amacıyla toggle () öğesini içeren bir dizi talimat çalıştırmak istiyorsanız, ancak zaten gizli olup olmadığını bilmiyorsanız, bir çek eklemeniz gerekir (bir if ifadesi) Önce ve zaten gizli olup olmadığını öğrenmek için atlayın. Örnekteki p1'e bakın.
- Önceki 2 eksileriyle ilgili olarak, özel olarak gizlenen veya özel olarak gösterilen bir şey için toggle () kullanmak, hangi yolu değiştireceklerini bilmedikleri için kodunuzu okuyan başkalarına kafa karıştırıcı olabilir.
Örnek: https://jsfiddle.net/cxcawkyk/1/
.
Hide () / show () kullanarak ekranı değiştirme
JavaScript:
$("#element_to_hide").hide(); // To hide
$("#element_to_hide").show(); // To show
Artıları:
- Her zaman çalışır.
- Gösterildikten sonra, önceki görüntüleme değerini kullanmaya geri döner.
- Hangi durumu değiştirdiğinizi her zaman bileceksiniz, böylece:
- eğer durum önemliyse durum değiştirmeden önce görünürlüğü kontrol etmek için if ifadeleri eklemenize gerek yoktur.
- durum önemliyse, hangi duruma geçtiğinize ilişkin olarak kodunuzu okuyan başkalarını karıştırmaz.
- Sezgisel.
Eksileri:
- Bir geçişi taklit etmek istiyorsanız, önce durumu kontrol etmeniz ve ardından diğer duruma geçmeniz gerekir. Bunun için toggle () kullanın. Örnekteki p2'ye bakın.
Örnek: https://jsfiddle.net/k0ukhmfL/
.
Genel olarak, özellikle bir geçiş için gerekmedikçe hide () / show () olmak için en iyi söyleyebilirim. Umarım bu bilgiyi faydalı bulmuşsundur.
return false
içindeonclick
?