如何在没有鼠标事件的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.pageX
和event.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... } });
和繁荣,我们有它..