Hãy suy nghĩ tôi biết vấn đề của bạn. Bạn đang cố truy vấn vị trí chuột theo lập trình. Có lẽ bạn có mã như sau:
$(document).one('mousemove.myModule', function (e) {
// e.pageY and e.pageX is undefined.
console.log('e.pageY: ' + e.pageY + ', e.pageX: ' + e.pageX); }
).trigger('mousemove.myModule');
Sau đó, bạn hoàn toàn đúng. Các thuộc tính pageY và pageX trên đối tượng sự kiện sẽ không được xác định. Trên thực tế, có nhiều lỗ hổng trong đối tượng sự kiện sẽ không có ở đó, không chỉ là .pageY
và .pageX
. Có thể là một số lỗi trong jQuery. Dù sao, chỉ cần không chuỗi cuộc gọi đó để kích hoạt và kích hoạt sự kiện trên $ (cửa sổ) thay thế. Đừng hỏi tôi tại sao nó hoạt động mặc dù nhưng đối với tôi nó đã làm:
$(document).one('mousemove.myModule', function (e) {
console.log('e.pageY: ' + e.pageY + ', e.pageX: ' + e.pageX); });
// Now e.pageY and e.pageX will be defined!
$(window).trigger('mousemove.myModule');
Nguồn
2012-10-30 20:20:02
Đây có phải là thử nghiệm không? – airportyh
Khi điều bạn có thể làm là lưu dữ liệu sự kiện từ sự kiện mousemove thực cuối cùng, sau đó khi bạn kích hoạt nó lập trình sử dụng lại nó nếu không có dữ liệu sự kiện mới tồn tại. Nếu các sự kiện mousemove thực sự không được kích hoạt, điều đó có nghĩa là con chuột không di chuyển, do đó eventData từ mousemove thực cuối cùng phải có vị trí hiện tại. – Mahn