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

时间:2011-11-19 02:20:03

标签: javascript jquery mouse

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

有没有人能够实现一个解决方案,在您处理的任何时候,您都可以调用最后一次鼠标点击的坐标?

我已经尝试了过去8小时左右的所有解决方案,但是无法回想起最后一次鼠标点击坐标。

显然,你必须在处理$('...')的地方捕捉它。点击(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();

谢谢!

2 个答案:

答案 0 :(得分:1)

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

每当您想在最后一次点击期间引用该位置时,只需参考全局数组的相应元素即可。 (如果您的日志记录功能未取消而不是推送,您可以随时查看yourArray[0]。)

答案 1 :(得分:0)

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

全局:

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

在点击处理程序中:

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

然后,当您需要最后一次点击的坐标时,您可以引用xy