ฉันต้องการรับตำแหน่งเมาส์ปัจจุบัน แต่ไม่ต้องการใช้:
$(document).bind('mousemove',function(e){
$("#log").text("e.pageX: " + e.pageX + ", e.pageY: " + e.pageY);
});
เพราะฉันแค่ต้องได้รับตำแหน่งและประมวลผลข้อมูล
ฉันต้องการรับตำแหน่งเมาส์ปัจจุบัน แต่ไม่ต้องการใช้:
$(document).bind('mousemove',function(e){
$("#log").text("e.pageX: " + e.pageX + ", e.pageY: " + e.pageY);
});
เพราะฉันแค่ต้องได้รับตำแหน่งและประมวลผลข้อมูล
คำตอบ:
ฉันไม่เชื่อว่ามีวิธีสืบค้นตำแหน่งเมาส์ แต่คุณสามารถใช้mousemove
ตัวจัดการที่เก็บข้อมูลไว้เฉยๆเพื่อให้คุณสามารถสืบค้นข้อมูลที่จัดเก็บไว้ได้
jQuery(function($) {
var currentMousePos = { x: -1, y: -1 };
$(document).mousemove(function(event) {
currentMousePos.x = event.pageX;
currentMousePos.y = event.pageY;
});
// ELSEWHERE, your code that needs to know the mouse position without an event
if (currentMousePos.x < 10) {
// ....
}
});
แต่โค้ดเกือบทั้งหมดนอกเหนือจากsetTimeout
โค้ดและอื่น ๆจะทำงานเพื่อตอบสนองต่อเหตุการณ์และเหตุการณ์ส่วนใหญ่จะให้ตำแหน่งเมาส์ ดังนั้นโค้ดของคุณที่ต้องรู้ว่าเมาส์อยู่ที่ไหนก็สามารถเข้าถึงข้อมูลนั้นได้แล้ว ...
$(window).load(function(e){ console.log(e.pageX,e.pageY); });
ส่งกลับไม่ได้กำหนดสำหรับตำแหน่งเมาส์
คุณไม่สามารถอ่านตำแหน่งเมาส์ใน jQuery โดยไม่ใช้เหตุการณ์ ประการแรกโปรดทราบว่าคุณสมบัติevent.pageX
และevent.pageY
มีอยู่ในเหตุการณ์ใด ๆ ดังนั้นคุณสามารถทำได้:
$('#myEl').click(function(e) {
console.log(e.pageX);
});
ตัวเลือกอื่นของคุณคือใช้การปิดเพื่อให้รหัสทั้งหมดของคุณเข้าถึงตัวแปรที่อัปเดตโดยตัวจัดการ mousemove:
var mouseX, mouseY;
$(document).mousemove(function(e) {
mouseX = e.pageX;
mouseY = e.pageY;
}).mouseover(); // call the handler immediately
// do something with mouseX and mouseY
ฉันใช้วิธีนี้:
$(document).mousemove(function(e) {
window.x = e.pageX;
window.y = e.pageY;
});
function show_popup(str) {
$("#popup_content").html(str);
$("#popup").fadeIn("fast");
$("#popup").css("top", y);
$("#popup").css("left", x);
}
ด้วยวิธีนี้ฉันจะมีระยะห่างจากด้านบนบันทึกเป็น y เสมอและระยะทางจากซ้ายบันทึกเป็น x
ยิ่งไปกว่านั้นmousemove
เหตุการณ์จะไม่ถูกทริกเกอร์หากคุณลากและวางบนหน้าต่างเบราว์เซอร์ ในการติดตามพิกัดของเมาส์ในระหว่างการลากและวางคุณควรแนบตัวจัดการสำหรับdocument.ondragover
เหตุการณ์และใช้คุณสมบัติ originalEvent
ตัวอย่าง:
var globalDragOver = function (e)
{
var original = e.originalEvent;
if (original)
{
window.x = original.pageX;
window.y = original.pageY;
}
}
การใช้งานwindow.event
- มันมีที่ผ่านมาevent
และในขณะที่ใดevent
มีpageX
, pageY
ฯลฯ การทำงานสำหรับ Chrome, Safari, IE แต่ไม่ FF
var CurrentMouseXPostion;
var CurrentMouseYPostion;
$(document).mousemove(function(event) {
CurrentMouseXPostion = event.pageX;
CurrentMouseYPostion = event.pageY;
});
สร้าง EventListener บนวัตถุหลักในกรณีของฉันคือวัตถุเอกสารเพื่อให้เมาส์เชื่อมต่อทุกเฟรมและจัดเก็บไว้ในตัวแปรส่วนกลางและคุณสามารถอ่านเมาส์ Y & Z ได้ทุกเมื่อที่คุณต้องการทุกที่ที่คุณต้องการ
ฉันเจอสิ่งนี้ทั้งหมดมันคงจะดีที่จะแบ่งปัน ...
พวกคุณคิดยังไง?
$(document).ready(function() {
window.mousemove = function(e) {
p = $(e).position(); //remember $(e) - could be any html tag also..
left = e.left; //retrieving the left position of the div...
top = e.top; //get the top position of the div...
}
});
และบูมที่นั่นเรามี ..