Hangisini yapmam daha iyi? .hide()
yazmaktan daha hızlıdır .css("display", "none")
, ancak fark nedir ve her ikisi de aslında HTML öğesine ne yapıyor?
Hangisini yapmam daha iyi? .hide()
yazmaktan daha hızlıdır .css("display", "none")
, ancak fark nedir ve her ikisi de aslında HTML öğesine ne yapıyor?
Yanıtlar:
JQuery sayfasından .hide () hakkında :
"Eşleşen öğeler animasyon olmadan hemen gizlenecek. Bu, display özelliğinin değerinin jQuery'nin veri önbelleğine kaydedilmesi dışında .css ('display', 'none') çağrılmasına kabaca eşdeğerdir. Bir öğenin satır içi görüntüleme değeri varsa, gizlenir ve gösterilirse, yine satır içi olarak görüntülenir. "
Dolayısıyla, önceki değerine dönebilmeniz önemliyse, display
daha iyi kullanmalısınız hide()
çünkü bu şekilde önceki durum hatırlanır. Bunun dışında hiçbir fark yok.
.hide()
önceki display
özelliği none
, ayarlanmadan hemen önce depolar; bu nedenle, display
biraz daha güvenli olduğunuz öğenin standart özelliği olmasa, .show()
depolanan özelliği geri dönmek için kullanır. Yani ... biraz ekstra iş yapar, ancak tonlarca öğe yapmazsanız , hız farkı ihmal edilebilir olmalıdır.
JQuery koduna baktığımızda, olan budur:
hide: function( speed, easing, callback ) {
if ( speed || speed === 0 ) {
return this.animate( genFx("hide", 3), speed, easing, callback);
} else {
for ( var i = 0, j = this.length; i < j; i++ ) {
var display = jQuery.css( this[i], "display" );
if ( display !== "none" ) {
jQuery.data( this[i], "olddisplay", display );
}
}
// Set the display of the elements in a second loop
// to avoid the constant reflow
for ( i = 0; i < j; i++ ) {
this[i].style.display = "none";
}
return this;
}
},
Aynı şey. .hide()
jQuery işlevini çağırır ve ona bir geri arama işlevi eklemenizi sağlar. Böylece, .hide()
örneğin bir animasyon ekleyebilirsiniz.
.css("display","none")
öğenin niteliğini olarak değiştirir display:none
. JavaScript'te aşağıdakileri yaptığınızla aynıdır:
document.getElementById('elementId').style.display = 'none';
.hide()
Fonksiyon besbelli vb geri arama işlevleri için bu çekler, hız, olarak çalıştırmak için daha fazla zaman alır ...
Her ikisini de kullanmak güzel bir cevaptır; bu ya ya bir soru değildir.
Her ikisini de kullanmanın avantajı , sayfa yüklendiğinde CSS'nin öğeyi hemen gizlemesidir . JQuery .hide, öğeyi saniyenin çeyreğinde yanıp söner ve sonra gizler.
Sayfa yüklendiğinde öğenin gösterilmesini istemediğimizde CSS kullanabilir ve display: none & jQuery .hide () öğesini kullanabiliriz. Öğeyi değiştirmeyi planlıyorsak, jQuery geçişini kullanabiliriz.
Her ikisi de AFAIK gibi tüm tarayıcılarda aynısını yapar. Chrome ve Firefox, hem append kontrol display:none
etmek style
elemanın öznitelik.
Temel hide yöntemini kullandığınızda fark olmadığını görün. Ancak jquery, öğeye efektler veren çeşitli gizleme yöntemi sağlar. Ayrıntılı açıklama için aşağıdaki bağlantıya bakın: Jquery'de Gizleme Efektleri