Googleマップのapiで提供されているイベントリスナーに問題があります。事は、いくつかのイベントが実行され、いくつかは実行されないということです。私は、ポリゴンオーバーレイが完了した後にリスナーを設定するsetListeners関数を持っています。私がフックしたいイベントは、set_at、insert_at、remove_at、clickです。今すぐクリックイベントは正しく実行されますが、他のイベントは実行されません。私は何が間違っていますか?コードは次のとおりです。Javascript google maps描画イベント
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);
})
}
}
ありがとうございます! google.maps.eventでリスナーを追加
が定義されているself.drost? 'drost'がポリゴンであると仮定すると、Googleマップのイベント 'overlaycomplete'にリスナーを追加しようとしましたか? https://developers.google.com/maps/documentation/javascript/drawinglayer – JorgeObregon
@JorgeObregonはい、self.drostはe.overlayのoverlaycompleteイベントで初期化されます。また、私は、オーバーレイコンプリートコールバックの終わりにsetListenersを呼び出します。 –