[jquery] 마우스 이벤트없이 jQuery에서 마우스 위치를 얻는 방법은 무엇입니까?

현재 마우스 위치를 얻고 싶지만 사용하고 싶지 않습니다.

$(document).bind('mousemove',function(e){ 
        $("#log").text("e.pageX: " + e.pageX + ", e.pageY: " + e.pageY); 
}); 

위치를 파악하고 정보를 처리하면되므로



답변

마우스 위치 를 쿼리 하는 방법이 없다고 생각 하지만 mousemove정보를 저장 하는 핸들러를 사용 하여 저장된 정보를 쿼리 할 수 ​​있습니다.

jQuery(function($) {
    var currentMousePos = { x: -1, y: -1 };
    $(document).mousemove(function(event) {
        currentMousePos.x = event.pageX;
        currentMousePos.y = event.pageY;
    });

    // ELSEWHERE, your code that needs to know the mouse position without an event
    if (currentMousePos.x < 10) {
        // ....
    }
});

그러나 코드 등을 제외한 거의 모든 코드 setTimeout는 이벤트에 대한 응답으로 실행되며 대부분의 이벤트는 마우스 위치를 제공합니다. 따라서 마우스가 어디에 있는지 알아야하는 코드는 이미 해당 정보에 액세스 할 수 있습니다.


답변

이벤트를 사용하지 않고 jQuery에서 마우스 위치를 읽을 수 없습니다. 먼저 event.pageXevent.pageY속성이 모든 이벤트에 존재하므로 다음을 수행 할 수 있습니다.

$('#myEl').click(function(e) {
    console.log(e.pageX);
});

다른 옵션은 클로저를 사용하여 전체 코드가 mousemove 핸들러에 의해 업데이트되는 변수에 액세스하도록하는 것입니다.

var mouseX, mouseY;
$(document).mousemove(function(e) {
    mouseX = e.pageX;
    mouseY = e.pageY;
}).mouseover(); // call the handler immediately

// do something with mouseX and mouseY


답변

이 방법을 사용했습니다.

$(document).mousemove(function(e) {
    window.x = e.pageX;
    window.y = e.pageY;
});

function show_popup(str) {
    $("#popup_content").html(str);
    $("#popup").fadeIn("fast");
    $("#popup").css("top", y);
    $("#popup").css("left", x);
}

이런 식으로 항상 상단으로부터의 거리를 y에 저장하고 왼쪽으로부터의 거리를 x에 저장합니다.


답변

또한 mousemove브라우저 창에서 드래그 앤 드롭을 수행하면 이벤트가 트리거되지 않습니다. 드래그 document.ondragover앤 드롭 중에 마우스 좌표를 추적하려면 이벤트 핸들러를 연결 하고 해당 originalEvent 속성을 사용해야합니다.

예:

var globalDragOver = function (e)
{
    var original = e.originalEvent;
    if (original)
    {
        window.x = original.pageX;
        window.y = original.pageY;
    }
}


답변

사용 window.event-이 마지막 포함 event하고 같이 event포함 pageX, pageY등 크롬, 사파리, IE를위한 작품이 아닌 FF.


답변

var CurrentMouseXPostion;
var CurrentMouseYPostion;

$(document).mousemove(function(event) {
    CurrentMouseXPostion = event.pageX;
    CurrentMouseYPostion = event.pageY;
});

주 개체, 내 경우에는 문서 개체에 eventListener를 만들어 마우스가 모든 프레임을 조정하고 전역 변수에 저장합니다. 이렇게하면 언제든지 마우스 Y & Z를 읽을 수 있습니다.


답변

나는 이것을 만났고, 공유하면 좋을 것입니다 …

너희들은 어떻게 생각하니?

$(document).ready(function() {
  window.mousemove = function(e) {
    p = $(e).position();  //remember $(e) - could be any html tag also.. 
    left = e.left;        //retrieving the left position of the div... 
    top = e.top;          //get the top position of the div... 
  }
});

그리고 붐, 여기 있습니다 ..