Get mouse position when focus/blur events are fired?

前端 未结 2 1147
一整个雨季
一整个雨季 2021-01-18 02:04

I\'m using jQuery to capture an event:

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

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

});

This doesn\'t seem to work.

相关标签:
2条回答
  • 2021-01-18 02:36

    If you're trying to get the position relative to the element, try something like this instead:

    $("input").focus(function(e){
        var relativeX = e.pageX - this.offsetLeft;
        var relativeY = e.pageY - this.offsetTop;
    });
    
    0 讨论(0)
  • 2021-01-18 02:57

    You can only get mouse coordinates using mouse events. If you want to capture the position of the mouse, you can use a global mousemove event listener, and store the coordinates in a set of variables, which can later be accessed by the focus function. Example:

    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
    });
    
    0 讨论(0)
提交回复
热议问题