2012-12-21 154 views
-1

我使用下面的代码来捕获鼠标坐标,并将其绑定到一个div(容器)。并且在'container'里面还有一个叫做'subDiv'的div。我发现无论我在'subDiv'中移动的位置,坐标总是我刚刚输入的'subDiv'(例如,我在(10,10)处输入'subDiv',在'subDiv'中移动的位置,坐标总是(10,10))。 有人知道为什么吗?
var x,y;
var e = e||window.event;
return {
x:e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,
y:e.clientY+document.body.scrollTop+document.documentElement.scrollTop
};
问题获取鼠标坐标

+0

没有足够的代码来了解系统中发生了什么。你绑定了什么事件? 'mouseenter'或'mousemove'?你将什么元素绑定到事件? – Ian

+0

@ lan,thx为你的回复,我用鼠标悬停,并得到了我上面提到的问题。发布后,我改变它为mousemove :) – TheRealBo

回答

1

粘贴的内容如下演示。检查其他代码。

<!DOCTYPE html> 
<html> 
    <head> 
     <script> 
      function test(e){ 
       var x,y; 
       var e = e||window.event; 
       return { 
        x:e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft, 
        y:e.clientY+document.body.scrollTop+document.documentElement.scrollTop 
       }; 
      } 
      function myFunction(event){ 
       var x = test(event); 
       document.getElementById("demo").innerHTML=x.x + '.' + x.y; 
      } 
     </script> 
    </head> 

    <body> 
     <div id="container"> 
      <div id="subDiv" style="width:199px;height:99px;border:1px solid" onmousemove="myFunction(event)"></div> 
     </div> 
     <p id="demo"></p> 
    </body> 
</html> 
+0

** + 1 **优秀的答案! – arttronics

+0

@arttronics谢谢。 – coderLMN

+0

@JinzhaoWu thx for ur answer :) – TheRealBo