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

时间:2011-01-16 06:43:43

标签: jquery

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

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

2 个答案:

答案 0 :(得分:4)

在 650毫秒过后,鼠标坐标,并且相对于元素,我猜? (改编自http://docs.jquery.com/Tutorials:Mouse_Position

<强> See a working demo

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没有提供更直接的方法来获取它。

答案 1 :(得分:1)

阅读Mouse Position

尝试

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

查看working demo