2010-05-18 15 views
12

jQuery, belge yüküne uygun gövde yüksekliğini döndürmez - Hata mı, yoksa benim mi?

$(document).ready(function() { 
var bodyHeight = $("body").height(); 
console.log(bodyHeight); 
}); 

kullanıyorum. Vücut yüksekliği için gerçekten çok tuhaf bir numara alıyorum. Daha sonra konsolda

$("body").height(); 

çalıştırın ve doğru yüksekliği elde ediyorum. Bir şey $ (document) .load bunu yaparken balık gibi görünüyor ... Evet CSS iyi çalışıyor ve hepsi, bu benim hatam, kromlar mı, yoksa jQuery'nin mi?

cevap

11

Sen $(window).load() fonksiyonu bakmak yerine $(document).ready() istiyorum: Doğru yüksekliği elde etmek istiyorsanız, tüm resimler ve nesneler takıldığında ve sayfa render edildikten sonra ateşler window.load olay denemelisiniz .

$(document).ready() olayı, tüm grafikler henüz yüklenmemiş olsa bile, HTML DOM yüklendiğinde ve hazır olduğunda çalışır. $(window).load() olayı, tüm sayfalar, nesneler ve resimler dahil olmak üzere tüm sayfa tam olarak yüklendikten sonra çalışır.

Aşağıda, farkı açıklayan mükemmel bir bağlantı var. http://4loc.wordpress.com/2009/04/28/documentready-vs-windowload/

+0

Teşekkürler! Bu neredeyse beni çıldırtan benzer bir sorunu çözdü! – thomas

+0

Sorunumu çözdüm. Teşekkürler! –

+0

Hala çok erken, ama hazır daha iyi ... Ancak, setTimeout hala uygun yükseklik elde etmek için gereklidir – momomo

15

DOM, yüklendikten sonra ancak sayfanın tamamı oluşturulmadan önce document.ready olayını tetikler.

$(window).load(function() { 
    var bodyHeight = $("body").height(); 
}); 
+0

Cool, Cool. Teşekkürler dostum. Her zaman bu çılgın bir fikrim vardı, senaryo yüklememi geciktirirdi, ama bu gerçekten modern tarayıcılarla ilgili bir sorun değil! –

İlgili konular