模拟事件以获得鼠标坐标?

时间:2010-11-03 13:38:10

标签: javascript

我需要在setTimeout函数调用提供的函数时获得鼠标坐标。

3 个答案:

答案 0 :(得分:3)

您需要使用mousemove事件处理程序来跟踪setTimeout()回调可访问的范围内的鼠标坐标。然后,您的setTimeout()回调只需检查您从mousemove处理程序中存储的值。

在较高级别,它看起来像这样(伪代码):

var mouseX, mouseY;
document.addListener('onMouseMove', function (event)
{
    mouseX = event.getMouseX(); // in reasonable browsers, this would be
    mouseY = event.getMouseY(); // event.pageX and event.pageY
});

// then, when you want to retrieve it later...
setTimeout(function ()
{
    console.log(mouseX, mouseY);
}, 1000);

就个人而言,我建议使用第三方库,如jQuery,YUI,Dojo等,以消除事件处理中的所有跨浏览器差异,如果你还没有这样做的话。

答案 1 :(得分:0)

使用setTimeout执行此操作会有问题,因为您没有可以使用的事件对象。但是,你可以在<body>处理“mousemove”并跟踪这种方式。传递给处理程序的事件对象(或者,在IE的情况下,全局设置)将在事件发生时具有鼠标的 x,y 坐标。

答案 2 :(得分:0)

function getValues()
{
    var s = 'X=' + window.event.clientX +  ' Y=' + window.event.clientY ;
    return s;

}  

setTimeout ( getValues, 10000);