Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 鼠标点击坐标-一个真正的解决方案。。。有吗?_Javascript_Jquery_Mouse - Fatal编程技术网

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

Javascript 鼠标点击坐标-一个真正的解决方案。。。有吗?,javascript,jquery,mouse,Javascript,Jquery,Mouse,到目前为止,StackOverflow中有3898篇关于鼠标点击坐标的帖子。它们都涵盖了如何找到鼠标坐标的所有内容。。。。关于一个元素 是否有人能够实现一个解决方案,在处理过程中的任何时候,您都可以回忆最后一次鼠标单击的坐标 在过去8个小时左右的时间里,我尝试了所有的方法和解决方案,但没有任何方法能够回忆起上次鼠标点击的坐标 显然,您必须在处理$(“…”)的地方捕获它 如果我将处理发送到某个地方,并且在该处理(几纳秒后)内,我想找出最后一次鼠标单击的坐标,怎么样?如何在特定函数之外检索它 编辑:

到目前为止,StackOverflow中有3898篇关于鼠标点击坐标的帖子。它们都涵盖了如何找到鼠标坐标的所有内容。。。。关于一个元素

是否有人能够实现一个解决方案,在处理过程中的任何时候,您都可以回忆最后一次鼠标单击的坐标

在过去8个小时左右的时间里,我尝试了所有的方法和解决方案,但没有任何方法能够回忆起上次鼠标点击的坐标

显然,您必须在处理$(“…”)的地方捕获它


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

编辑:

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

在主页上,我创建了两个div(以避免处理数组和全局变量):

需要时,我可以:

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

谢谢大家!

您可以设置一个全局数组,用于跟踪坐标(可能在对象中,无论什么)。然后,您可以将事件侦听器添加到文档中,侦听单击。那就只需要记录位置了

无论何时,只要在最后一次单击期间引用位置,就只需引用全局数组中的相应元素。(如果您的日志记录函数取消移动而不是按下,您可以始终只查看
yourArray[0]

中的
$(“…”)。单击(函数(e){…})处理程序,您可以使用坐标设置全局变量。例如:

全球:

var x = -1, // no previous click
    y = -1; // no previous click
在单击处理程序中:

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

然后,当需要最后一次单击的坐标时,您可以只参考
x
y

“如何在特定函数之外检索它?”将最后一次鼠标单击坐标存储在单击事件处理程序作用域之外的变量中。是否存在无法将每次单击坐标推送到数组中,然后调用所需坐标的原因?能否将您的解决方案添加为答案(并可能接受它)?假设您只能接受一个答案,我觉得我不能把我的解决方案写下来作为答案,但仍然要归功于SDLEIHSC;按照我的解释,他给了我解决自己问题的正确途径。一个人能接受多个答案吗?“在主页上,我创建了两个div(以避免处理数组和全局变量)”-您这样说似乎是件好事,但出于这个目的使用全局变量并没有错。你为什么认为这种方式更好?你提出了一些好主意。谢谢至于适当的元素,if对于我的问题来说是不可能的,因为我正在制作一个特殊的函数来处理来自其他函数的结果。但是,确切地说,“全局持有者”是个好主意。@zequinha bsb这就是为什么要将单击侦听器附加到文档:所有单击事件(除非传播已停止)都会出现气泡。(或者,如果你在IE中使用setCapture,你可以使用事件捕获,而根本不用担心传播会被停止。)我尝试了许多不同的方法。无论出于何种原因,处理程序中的变量都不会传播。即使是全局变量(在处理程序外部定义)也无法恢复新值。这是一个非常有趣的发现。谢谢你!
var x = -1, // no previous click
    y = -1; // no previous click
x = e.pageX();
y = e.pageY();