如何在没有鼠标事件的jQuery中获取鼠标位置?

我想获得当前的鼠标位置,但我不想使用:

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

因为我只需要得到这个职位并处理这些信息

我不相信有一种方法来查询鼠标的位置,但你可以使用一个鼠标移动处理程序,只是存储的信息,所以你可以查询存储的信息。

 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); }); 

你的另一个select是使用闭包给你的整个代码访问一个由mousemove处理程序更新的variables:

 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事件。 在drag'n'drop过程中跟踪鼠标坐标,您应该附加document.ondragover事件的处理程序,并使用它的originalEvent属性。

例:

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

我遇到了这个问题,总是很高兴分享……你们怎么想的。

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

和繁荣,我们有它..