2015-05-17 16 views
5

Hãy xem xét vấn đề chụp mousemove trên toàn bộ tài liệu HTML.Cách tốt nhất để gắn trình xử lý sự kiện vào toàn bộ tài liệu html

Tôi biết Bốn đối tượng mà sự kiện người nghe có thể được kèm theo:

window, document, document.body, document.documentElement

Sau khi kiểm tra đơn giản, nó dường như với tôi rằng gắn liền với ai trong số họ có tác dụng tương tự.

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

tôi đã tự hỏi nếu có bất kỳ sự khác biệt Tôi không biết về

+0

Theo như tôi biết cả 'window' và' document.documentElement' được đính kèm vào 'html' trong khi' document.body' đính kèm với 'body' không được đảm bảo bao phủ toàn bộ trang. – Xufox

Trả lời

3

Có hai issuses tiềm năng với ràng buộc sự kiện để các đối tượng document.body (hiệu suất, khả năng tương thích?):

  • Một số trình duyệt không cho phép truy cập đối tượng nội dung trước khi nội dung trong trang đã bắt đầu được phân tích cú pháp, vì vậy việc ràng buộc sự kiện trực tiếp trong đầu sẽ không hoạt động. Bạn cần phải ràng buộc nó từ sự kiện load hoặc ready hoặc từ mã bên trong cơ thể.

  • Trong chế độ tuân thủ tiêu chuẩn (HTML 4, XHTML, HTML5) phần tử nội dung không tự động bao gồm toàn bộ cửa sổ. Nó sẽ chỉ lớn như nó cần chứa nội dung, và nếu nó có một lề không được bao phủ bởi phần tử cơ thể.

Các vấn đề liên quan