1

我正在尝试在用户单击的位置显示一种信息框类型的元素。我正在听“点击”事件,处理函数使用鼠标点击甚至对象的 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
4

2 回答 2

1

我找到的解决方案是用 event.originalEvent.x 和 event.originalEvent.y 覆盖 event.pageX 和 event.pageY 的值。

之后,您可以调用 event.getX()、event.getY() 获得职位。

于 2014-07-08T09:15:26.280 回答
1

这个解决方案对我有用。我用 :

`event.changedTouches[0].pageX`  
`event.changedTouches[0].pageY`  

代替

`event.pageX`  
`event.pageY`
于 2016-04-20T18:38:10.530 回答