如何找出鼠标坐标(setTimeout问题)?

以下是解释所有内容的代码:

$('#elem123').mouseenter(function () { setTimeout(function () { //what are mouse coords? }, 650); }); 

650 ms 的鼠标坐标已经过去了,相对于元素,我猜? (改编自http://docs.jquery.com/Tutorials:Mouse_Position )

查看工作演示

 var mouseX = 0, mouseY = 0; $(document).mousemove(function(event) { mouseX = event.pageX; mouseY = event.pageY; }); $('#elem123').mouseenter(function () { var t = this; setTimeout(function () { var localMouseX = mouseX - t.offsetLeft; var localMouseY = mouseY - t.offsetTop; }, 650); }); 

为什么要使用mousemoveoffsetLeft ? 原因是鼠标位置仅在发生此类事件时才可用(并且仅相对于整个页面)。 jQuery没有提供更直接的方法来获取它。

读取鼠标位置

尝试

 $('#elem123').mouseover(function (e) { var xPos = e.pageX; var yPos = e.pageY; setTimeout(function () { alert(xPos); alert(yPos); }, 650); }); 

查看工作演示