Arasında herhangi bir fark var mı
jQuery('#id').show() and jQuery('#id').css("display","block")
ve
jQuery('#id').hide() and jQuery('#id').css("display","none")
Arasında herhangi bir fark var mı
jQuery('#id').show() and jQuery('#id').css("display","block")
ve
jQuery('#id').hide() and jQuery('#id').css("display","none")
Yanıtlar:
jQuery ('# id'). css ("görüntü", "blok")
displayMalıdır aralarında birçok olası değerleri, sahip olabilir block, inline, inline-blockve daha çok fazlası .
.show()Yöntemi mutlaka ayarlayın vermez block, aksine sen (eğer hiç) bunu açıklayan şeyin sıfırlar.
JQuery kaynak kodunda, displayherhangi bir jQuery işleminden önce ne olduğunu kontrol etmek için özelliği "" (boş bir dize) olarak nasıl ayarladıklarını görebilirsiniz : küçük bağlantı .
Öte yandan, gizleme yoluyla yapılır display: none;, böylece bir noktayı düşünebilirsiniz .hide()ve .css("display", "none")eşdeğerdir.
Herhangi bir hasardan kaçınmak için .show()ve .hide()yine de kullanmanız önerilir (artı, daha kısadırlar).
Show () ve css ({'display': 'block'}) arasındaki fark
Başlangıçta buna sahip olduğunuzu varsayarsak:
<span id="thisElement" style="display: none;">Foo</span>
Aradığın zaman:
$('#thisElement').show();
Alacaksın:
<span id="thisElement" style="">Foo</span>
süre:
$('#thisElement').css({'display':'block'});
yapar:
<span id="thisElement" style="display: block;">Foo</span>
yani, evet bir fark var.
Hide () ve css ({'display': 'none'}) arasındaki fark
yukarıdakiyle aynıdır ancak bunları hide () olarak değiştirin ve ':' yok 'görüntüleyin ......
Başka bir fark
Ne zaman .hide()çağrıldığında display özelliğinin değeri jQuery'nin veri önbelleğine kaydedilir, bu nedenle .show()çağrıldığında ilk görüntü değeri geri yüklenir!
: Evet hem performansında bir fark vardır
jQuery('#id').show()daha yavaş gerçekleşiyor jQuery('#id').css("display","block")ekranı olarak jquery önbellekten başlangıç durumunu almak için yapılması gereken ise eski dava fazladan çalışmaya gibi olabilen bir ikili özellik değildir inline, block, none, table, vb benzer hide()yöntemde durum böyledir .
Bakınız: http://jsperf.com/show-vs-addclass
Parametre olmadan, .hide () yöntemi bir öğeyi gizlemenin en basit yoludur:
$ ('. hedef']. hide (); Eşleşen öğeler animasyon olmadan hemen gizlenecektir. Bu, kabaca .css ('display', 'none') çağırmaya eşdeğerdir, tek fark, display özelliğinin değerinin jQuery'nin veri önbelleğine kaydedilmesi ve böylece görüntünün daha sonra başlangıç değerine geri yüklenebilmesidir. Bir öğe satır içi görüntü değerine sahipse, bu durumda gizlenir ve gösterilir, bir kez daha satır içi olarak görüntülenecektir.
Gösteri hakkında aynı
.show()uygun ayarlar displayel uygun mülkü seçmek zorunda kalacak olurken ile, mal.css()
Evet bir fark var.
jQuery('#id').css("display","block") göstermek istediğiniz öğeyi her zaman blok olarak ayarlayacaktır.
jQuery('#id').show() will et başlangıçta hangi görüntü tipine göre, display: örneğin satır içi.
Jquery Belgesine Bakın
Kaynak koduna bir göz atabilirsiniz (burada v1.7.2).
Biz ayarlayabileceğini animasyon dışında, bu da bellekte eski ekran stili tutmak (her durumda değil block, aynı zamanda olabilir inline, table-cell, ...).
bkz. http://api.jquery.com/show/
Parametre olmadan, .show () yöntemi bir öğeyi görüntülemenin en basit yoludur:
$ ('. hedef']. show ();
Eşleşen öğeler, animasyon olmadan hemen ortaya çıkacaktır. Bu, kabaca .css ('display', 'block') çağırmaya eşdeğerdir, ancak display özelliği başlangıçta olduğu gibi geri yüklenir. Bir öğe satır içi görüntü değerine sahipse, bu durumda gizlenir ve gösterilir, bir kez daha satır içi olarak görüntülenecektir.