确定事件之外的鼠标位置(使用jQuery)?

时间:2009-07-15 20:28:18

标签: jquery event-handling mouse position

我需要使用(最好)jQuery来保持绝对鼠标位置/坐标(X和Y),就像在this tutorial中一样,但在任何JavaScript事件之外。谢谢。

4 个答案:

答案 0 :(得分:47)

不可能。但是,您可以在教程中使用相同的方法将位置存储在全局变量中,并在事件外部读取它。

像这样:

jQuery(document).ready(function(){
   $().mousemove(function(e){
      window.mouseXPos = e.pageX;
      window.mouseYPos = e.pageY;
   }); 
})

现在,您可以随时随地使用window.mouseXPoswindow.mouseYPos

答案 1 :(得分:29)

这最初是对Chetan Sastry's answer的评论,但我意识到它也可能值得作为答案发布:

即使您只是轮询光标位置,我也要小心拥有一个文档级的,始终在运行的mousemove事件。这是一个很大的处理,可能会使任何浏览器陷入困境,特别是像IE这样的慢速浏览器。

这样的问题几乎肯定会引发设计决策的问题:如果你不需要处理鼠标事件来轮询光标位置,你真的需要光标位置吗?有没有更好的方法来解决你想要解决的问题?

编辑:即使在Safari 4中,这是(低估)非常快,单个mousemove事件使得与该教程页面的每次互动对我来说都明显不稳定。想一想这将如何影响用户对您网站或应用程序的看法。

答案 2 :(得分:10)

答案 3 :(得分:1)

我试过@Chetan Sastry的洗礼,但它不起作用。(我正在使用jQuery 1.6.4)。我改变了代码然后我现在工作。这是我的代码。我希望这会有所帮助。



    $(document).ready(function(){
       $(document).mousemove(function(e){
          window.mouseXPos = e.pageX;
          window.mouseYPos = e.pageY;
       }); 
    });