2013-04-02 124 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名稱的構造函數的屬性。髒,但它工作:) - 謝謝。 –