Javascript event.pageX和event.pageY返回的数字可以';不可用

Javascript event.pageX和event.pageY返回的数字可以';不可用,javascript,jquery,Javascript,Jquery,我现在在event.pageX和event.pageY函数方面遇到一些问题。我试图使用它们来获取鼠标在单击事件上相对于画布元素的位置。我通过以下代码行获得相对于画布的位置: var mx = e.pageX - this.xPos; var my = e.pageY - this.yPos; this.xpo和this.ypo通过使用jQuery的偏移函数获得: this.xPos = $("#timelines").offset().left; this.yPos = $("#timelin

我现在在event.pageX和event.pageY函数方面遇到一些问题。我试图使用它们来获取鼠标在单击事件上相对于画布元素的位置。我通过以下代码行获得相对于画布的位置:

var mx = e.pageX - this.xPos;
var my = e.pageY - this.yPos;
this.xpo
this.ypo
通过使用jQuery的偏移函数获得:

this.xPos = $("#timelines").offset().left;
this.yPos = $("#timelines").offset().top;
当我分别记录其中一个(
e.pageX/Y
this.x/yPos
)时,它们会给出正确的数字。但是,当我在减去后记录
mx
my
的结果时,它表示它不是一个数字(NaN)。我在网上四处寻找,但没有找到任何可以解释为什么会发生这种情况的东西。我尝试过使用
Number(event.pageX/Y)
和/或
Number(this.x/yPos)
显式地强制转换它们,但没有成功。有人有什么建议吗?

尝试使用parseFloat()处理任何非数字基变量。将“1”(浮点)转换为1(数字)

不熟悉jQuery,但确保offset函数末尾没有“px”吗


最后,尝试触发一个警报(或console.log,如果必须的话),所有变量都会给您带来查找和隔离问题的麻烦。

Nvm,我解决了这个问题。
的值在事件侦听器中发生更改,并且没有访问正确的xPos/YPO

实际上,请尝试使用clientX替换pageX和pageY,并使用typeof函数检查my Var的类型。我在减法中使用的两个值都是数字,clientX/Y没有改变任何东西。这就是为什么我没有创业的原因。建议:创建一个JSFIDLE。大师们喜欢你这样做。带来更快更好的解决方案,尤其是使用健壮的代码。