我有一個谷歌地圖API提供的事件監聽器的問題。事情是,有些事件運行,有些不是。我有一個setListeners函數,用於在多邊形疊加完成後設置偵聽器。我想要掛鉤的事件是:set_at,insert_at,remove_at並單擊。現在點擊事件正確運行,但其他事件沒有正確運行。我能做什麼錯?這裏是代碼:Javascript谷歌地圖繪畫事件
self.setListeners = function() {
//this click event runs correctly
google.maps.event.addListener(self.map, 'click', function (e) {
self.clearSelection();
})
console.log(self.drost);
if (typeof self.drost != 'undefined') {
self.drost.addListener('set_at', function (e) {
console.log(e.overlay);
});
self.drost.addListener('insert_at', function (e) {
console.log(e.overlay);
});
self.drost.addListener('remove_at', function (e) {
console.log(e.overlay);
});
//this click also runs correctly
self.drost.addListener('click', function(e){
self.setSelection(self.drost);
})
}
}
在此先感謝!
被self.drost定義?假設'drost'是多邊形,你有沒有嘗試在google maps事件'overlaycomplete'上添加監聽器? https://developers.google.com/maps/documentation/javascript/drawinglayer – JorgeObregon
@JorgeObregon是的,self.drost在e.overlay的overlaycomplete事件中被初始化。另外,我在overlaycomplete回調結束時調用setListeners。 –