2015-05-17 19 views
5

Tüm HTML belgesine mousemove yakalama sorununu düşünelim.Tüm html belgesine olay dinleyicisinin eklenmesinin en iyi yolu

Ben olay dinleyicisi tespit edilebileceği üzere dört nesneyi biliyorum:

window, bunlardan herhangi aynı etkiye sahiptir takılarak bana görünüyordu document, document.body, document.documentElement

basit testlerden sonra. Ben bilmem herhangi bir fark olup olmadığını

$(window).on('mousemove', function(){console.log(1)}) 

merak ediyorum document.body nesneye olay bağlama ile iki potansiyel Issuses vardır

+0

Bildiğim kadarıyla hem 'window' biliyor ve document.body' tüm sayfayı kapsayacak şekilde garanti edilmemektedir hangi body'' verdiği 'oysa' document.documentElement' 'html' eklemek olarak. – Xufox

cevap

3

(performans, uyumluluk?):

  • Bazı tarayıcılar, sayfadaki içerik ayrıştırılmadan önce vücut nesnesine erişmeye izin vermez, böylece etkinliği doğrudan kafanın içine bağlama çalışmaz. Bunu load veya ready olayından veya gövdenin içindeki koddan bağlamanız gerekir. Standartlar uyumlu modda (HTML 4, XHTML, HTML5) gövde öğesi tüm pencereyi otomatik olarak kapatmaz. Sadece içeriği içermesi gerektiği kadar büyük olacak ve eğer vücut öğesi tarafından kapsanmayan bir sınır varsa.