Javascript 触发焦点/模糊事件时获取鼠标位置?

Javascript 触发焦点/模糊事件时获取鼠标位置?,javascript,html,jquery,mouse,jquery-events,Javascript,Html,Jquery,Mouse,Jquery Events,我正在使用jQuery捕获一个事件: $('input').focus(function(e){ console.log( e.pageX, e.pageY ); }); 这似乎不起作用。。。有没有其他方法来定位鼠标的想法 帮助会很好。您只能使用鼠标事件获取鼠标坐标。如果要捕获鼠标位置,可以使用全局mousemove事件侦听器,并将坐标存储在一组变量中,稍后可通过focus函数访问这些变量。例如: var pageX, pageY; //Declare these globall

我正在使用jQuery捕获一个事件:

$('input').focus(function(e){

    console.log( e.pageX, e.pageY );

});
这似乎不起作用。。。有没有其他方法来定位鼠标的想法



帮助会很好。

您只能使用鼠标事件获取鼠标坐标。如果要捕获鼠标位置,可以使用全局
mousemove
事件侦听器,并将坐标存储在一组变量中,稍后可通过
focus
函数访问这些变量。例如:

var pageX, pageY; //Declare these globally
$(window).mousemove(function(e){
    pagex = e.pageX;
    pageY = e.pageY;
});

$('input').focus(function(){
    console.log(pageX, pageY); // These variables have been defined by the global
                               //  mousemove event
});

如果要获取相对于元素的位置,请尝试以下操作:

$("input").focus(function(e){
    var relativeX = e.pageX - this.offsetLeft;
    var relativeY = e.pageY - this.offsetTop;
});

我认为你只能在使用鼠标的事件上获得鼠标坐标——单击、dblclick等。如果用户通过键盘点击来关注你的输入,那么获得鼠标坐标就没有意义了。这是唯一的方法,因为这里的[鼠标]事件指的是什么??“.pageX和.pageY可以从任何事件中读取,而不仅仅是.mousemove()。例如,您可能想知道用户在特定div中单击的确切位置:下面是一个示例,我们在名为#special的特定div中侦听单击事件。”@jbabey a click是一个鼠标事件
focus
不是鼠标事件。@RobW好吧,我理解,我同意你的看法-奇怪的是,我在上面链接的网站上说的是“任何事件”,而不是“任何鼠标事件”@Andy,我最初想用的是
x
y
。然后,我想“很可能x或y已经在函数中定义,导致冲突。”因此,我决定使用描述性但紧凑的
pageX
pageY
变量名。