google-maps - zoom_changed 在页面加载时重复触发
问题描述
使用 Google Maps API,我的initMap()
函数中有两个监听器:
google.maps.event.addListener(map, 'dragend', function(e) {
var searchType=location.search.split('=').pop();
MAPSEARCH.MY.searchOnLoc(false, searchType);
});
google.maps.event.addListener(map, 'zoom_changed', function(e) {
var searchType=location.search.split('=').pop();
MAPSEARCH.MY.searchOnLoc(false, searchType);
});
第一个工作正常,但第二个(zoom_changed
)在页面加载时触发多次,导致各种混乱。我怎样才能防止这种情况?
出于测试目的,我尝试更改为,bounds_changed
但它也会在页面加载时触发额外的时间。
解决方案
我找到了一种方法来阻止zoom_changed
监听器加载,直到地图完成加载:
google.maps.event.addListenerOnce(map, 'tilesloaded', function() {
google.maps.event.addListener(map, 'zoom_changed', function (e) {
// var eventListener = google.maps.event.addListener(this.map, "bounds_changed", function () {
var searchType = location.search.split('=').pop();
MAPSEARCH.MY.searchOnLoc(false, searchType);
// });
});
})
推荐阅读
- node.js - Vue 项目中 NPM INSTALL 命令的问题
- maxima - Maxima (CAS):如何保存会话历史?
- python - 创建可执行的 kivy 应用程序和 exe 安装程序
- heroku - 将 mern 应用部署到 heroku,构建成功但显示应用错误。查看heroku日志
- web-crawler - StormCrawler spouts 中的 bucket 是什么意思?
- javascript - 将一个函数从一个组件传递到另一个(ReactJS)
- react-native - 错误构建APK构建错误>任务:app:packageRelease FAILED
- android - PlayStore 不断拒绝应用更新以获得 MANAGE_EXTERNAL_STORAGE 权限,并且应用描述也没有更新
- amazon-web-services - 在 AWS 中尝试从 ec2 连接 rds 两者都在同一个 vpc(不是默认 vpc)中出现错误
- java - 反转负数时出现 NumberFormatException