2012-02-21 204 views
0

我在画布上工作,现在我已经达到了需要找到鼠标坐标的位置,这样我可以在画布内制作“按钮”。但是,当我尝试捕获坐标并在函数中使用它们来确定鼠标是否在按钮内时,它不起作用。无法从画布检索鼠标坐标

我的坐标检索方法有什么问题?这是为了一个我和朋友正在参加学校项目的游戏。

下面的代码:

<!-- game canvas --> 
<canvas id="canvas" width="900" height="600"> 

<!-- no-support message --> 
Se está a ver isto, o seu browser não suporta HTML5. 

</canvas> 

只需在画布上,因为nohing别的真正重要的。

这里的JavaScript:

//find mouse coordinates 

var mouseX = 0, mouseY = 0; 

$('#canvas').mousemove(function(e){ 
    mouseX = e.pageX - this.offsetLeft; 
    mouseY = e.pageY - this.offsetTop; 
}); 
+0

你可以在你的问题中包括你的来源或相关部分吗?在堆栈溢出中,即使其他站点消失,我们也希望问题和答案在未来有用,而您的Gist似乎已经消失。 – 2012-02-23 11:58:15

+0

(我没有低估这个问题。)我的意思是在问题中包括来源,而不是像gist.github.com这样的外部网站。 SO会自动限制它们的高度,所以不要担心长度(这不是很多)。 – 2012-02-23 13:58:00

回答

3

var创建一个局部变量。但是,对于您的情况,您想要更新以外的变量而不是创建新的本地函数。所以,只需在mousemove函数内删除var即可。

目前,外部变量被局部变量“隐藏”,并且变得不可访问。

http://jsfiddle.net/wXMyH/1/