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

时间:2011-11-02 17:30:28

标签: javascript jquery html javascript-events mouse

我正在使用jquery来捕获事件:

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

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

});

这似乎不起作用......关于获得鼠标位置的其他方法的任何想法?


帮助会很棒,谢谢:)

2 个答案:

答案 0 :(得分:7)

您只能使用鼠标事件获取鼠标坐标。如果要捕获鼠标的位置,可以使用全局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
});

答案 1 :(得分:2)

如果你想要获得相对于元素的位置,请尝试这样的事情:

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