我需要在setTimeout函数调用提供的函数时获得鼠标坐标。
答案 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);