2013-04-02 96 views
0

添加一个监听mousemoveconsole.log检查活动取得pageX属性和pageY产生的对象:从谷歌地图将鼠标悬停

{qE {latLng: Q, Sa: MouseEvent, pixel: undefined, ca: undefined, ...}}

我期待提取{Sa: MouseEvent}对象的pageXpageY属性。

我知道我可以通过event.Sa.pageXevent.Sa.pageY访问它们。但据我所知,Sa对象没有记录在任何地方。是否有另一种更稳健的方式来访问pageXpageY?我只是担心它将来会打破。

回答

2

pageX和pageY是DOM事件的属性,看起来您观察的事件是google.maps.MouseEvent,它不公开所请求的属性。

使用addDomListener,而不是观察DOM事件(包含地图的节点):

google.maps.event.addDomListener(map.getDiv(), 'mouseover', function(e){ 
    console.log(e.pageX+','+e.pageY); 
}); 
+1

如果什么事件没有被绑定到'map.getDiv()',而是,多边形?然后,'e'对象仍然不包含'pageX'和'pageY',除非我通过'Sa'对象进行代理。 –

+4

你不应该访问属性'Sa',这个标签可能会随着下一个API版本而改变(我刚刚检查过它,因为3.10它是'Ja',而3.11它是'Ra')。你可以做什么:迭代PolyMouseEvent的所有属性,包含DOM-MouseEvent的属性将具有构造函数'MouseEvent'。但是,由于该属性没有记录,所以不能依赖于PolyMouseEvent将公开包含DOM-MouseEvent的属性的事实。 –

+0

现在迭代事件的属性并查找具有MouseEvent名称的构造函数的属性。脏,但它工作:) - 谢谢。 –