鼠标点击坐标-一个真正的解决方案…有吗?

Mouse Click coordinates - a true solution ... is there one?

本文关键字:解决方案 有吗 一个 坐标 鼠标      更新时间:2023-09-26

截至目前,StackOverflow中有3,898个关于鼠标点击坐标的帖子。它们都涵盖了如何找到鼠标坐标....的所有内容

有没有人能够实现一种解决方案,在处理的任何点,您都可以回忆起最后一次鼠标单击的坐标?

在过去的8个小时左右,我已经尝试了所有的解决方案,但无法找到任何可以回忆起上次鼠标点击坐标的东西。

显然,您必须在处理$('…')时捕获它。click(function(e){…});

如果我将处理发送到某个地方,并且在该处理中(几纳秒后)我想找出最后一次鼠标单击的坐标,该怎么办?如何在特定函数之外检索它?

编辑:

根据sdleihssirhc的建议,我能够实现一个适合我的解决方案:

在主页上,我创建了两个div(以避免处理数组和全局变量):
<div id='mouseX' style='display:none; ' ></div>
<div id='mouseY' style='display:none; ' ></div>

在主页面的脚本标签中:

$('#wrapper').click(function(e) {
    var offset = $(this).offset();
    $('#mouseX').text(e.clientX - offset.left);
    $('#mouseY').text(e.clientY - offset.top);
});

需要的时候,我只要:

var clickX = $('#mouseX').text();
var clickY = $('#mouseY').text();

谢谢!

您可以设置一个全局数组,用于跟踪坐标(可能在对象中,无论如何)。然后,可以向文档添加事件侦听器,侦听单击。然后就是记录位置的问题了。

每当您想要引用上次单击期间的位置时,只需引用全局数组的适当元素即可。(如果你的日志函数没有移位,而不是推入,你总是可以只看yourArray[0])

$('...').click(function(e){...});处理程序中,您可以使用坐标设置全局变量。例如:

全球:

var x = -1, // no previous click
    y = -1; // no previous click

在点击处理程序中:

x = e.pageX();
y = e.pageY();

然后,当你需要最后一次点击的坐标时,你可以参考xy