我现在使用event.pageX和event.pageY函数遇到一些麻烦。我试图使用它们来获取相对于我的canvas元素的单击事件上鼠标的位置。我用这些代码行获得了相对于我的画布的位置:
var mx = e.pageX - this.xPos;
var my = e.pageY - this.yPos;
this.xPos
和this.yPos
是使用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)
明确地投射它们但是没有用。有没有人有任何建议?
答案 0 :(得分:0)
尝试使用parseFloat()围绕任何基础变量是非数字的。这将'1'(浮动)变为1(数字)
不熟悉jQuery,但确保偏移函数末尾没有“px”?
最后尝试触发一个警报(或者如果必须的话,控制台.log),并使用所有变量来查找和隔离问题。
答案 1 :(得分:0)
Nvm,我想出了这个问题。 this
的值在事件侦听器中发生了变化,而没有访问正确的xPos / yPos