截至目前,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();
谢谢!
答案 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();
然后,当您需要最后一次点击的坐标时,您可以引用x
和y
。