我正在尝试在用户单击的位置显示一种信息框类型的元素。我正在侦听"click"事件,一个处理程序函数使用鼠标单击甚至对象的 event.pageX 和 event.pageY 来呈现信息框。这在桌面浏览器中完美运行。我尝试从移动客户端点击该页面。event.pageX 和 event.pageY 似乎是"NaN"。知道为什么吗??
处理程序的一部分如下所示。
var pushPinClickEventHandler = function (event) {
var clickX = event.pageX;
var clickY = event.pageY;
//do some thing here
}
编辑:添加有关鼠标事件对象的详细信息
桌面:
isPrimary: true
isSecondary: false
isTouchEvent: undefined
pageX: 136
pageY: 269
移动:
isPrimary: false
isSecondary: false
isTouchEvent: true
pageX: NaN
pageY: NaN
这个解决方案对我有用。我使用 :
`event.changedTouches[0].pageX`
`event.changedTouches[0].pageY`
代替
`event.pageX`
`event.pageY`
我找到的解决方案是用event.originalEvent.x和event.originalEvent.y覆盖event.pageX和event.pageY的值。
之后,你可以得到调用event.getX(),event.getY()的仓位。