event.pageX和event.pageY返回一个无法使用的数字

时间:2014-04-12 22:37:07

标签: javascript jquery

我现在使用event.pageX和event.pageY函数遇到一些麻烦。我试图使用它们来获取相对于我的canvas元素的单击事件上鼠标的位置。我用这些代码行获得了相对于我的画布的位置:

var mx = e.pageX - this.xPos;
var my = e.pageY - this.yPos;

this.xPosthis.yPos是使用jQuery的偏移函数获得的:

this.xPos = $("#timelines").offset().left;
this.yPos = $("#timelines").offset().top;

当我单独记录其中任何一个(e.pageX/Ythis.x/yPos)时,它们会给我正确的数字。但是,当我在减去后记录mxmy的结果时,它表示它不是数字(NaN)。我在网上看过,但没有找到任何可以解释为什么会这样的事情。我尝试使用Number(event.pageX/Y)和/或Number(this.x/yPos)明确地投射它们但是没有用。有没有人有任何建议?

2 个答案:

答案 0 :(得分:0)

尝试使用parseFloat()围绕任何基础变量是非数字的。这将'1'(浮动)变为1(数字)

不熟悉jQuery,但确保偏移函数末尾没有“px”?

最后尝试触发一个警报(或者如果必须的话,控制台.log),并使用所有变量来查找和隔离问题。

答案 1 :(得分:0)

Nvm,我想出了这个问题。 this的值在事件侦听器中发生了变化,而没有访问正确的xPos / yPos