【发布时间】:2016-09-19 14:16:52
【问题描述】:
我在使用 Google 地图 API 提供的事件侦听器时遇到问题。问题是,有些事件会运行,有些则不会。我有一个 setListeners 函数,它在多边形覆盖完成后设置监听器。我想挂钩的事件是:set_at、insert_at、remove_at 和 click。现在点击事件运行正常,但其他的没有。我能做错什么吗?代码如下:
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”是多边形,您是否尝试在谷歌地图事件
overlaycomplete上添加监听器? developers.google.com/maps/documentation/javascript/… -
@JorgeObregon 是的,self.drost 是在 e.overlay 的 overlaycomplete 事件中初始化的。另外,我在 overlaycomplete 回调结束时调用了 setListeners。
标签: javascript google-maps dom-events