问题:百度地图自定义覆盖物手机端添加点击事件无效
在电脑端调试的还可以,谁知在手机端竟出现这个问题;哎,还是太年轻了;
通过强大的度娘,知道了答案;那就是“手机端没人拖到事件覆盖掉点击事件了”,那么该如何解决呢?
三篇博文缓缓飘出:【百度地图自定义覆盖物手机端添加点击事件无效】、【百度地图自定义覆盖物,在手机上无法监听click事件】、【Vue 移动端项目 百度地图 点击事件无效、不触发 解决方案】
嘿嘿,通过学习上面的两篇博文,最终有个解决办法;
下面是我的解决代码【部分】:
// 点击地图并在此添加标记
map.addEventListener("click", function(e) {
popLayer(e);
});
// 触摸移动--开启拖动
map.addEventListener("touchmove", function (e) {
map.enableDragging();
});
在这里我就写下我的一个疑问,下面是我一开始借鉴上面三篇博文的实现代码:
// 点击地图并在此添加标记
map.addEventListener("click", function(e) {
popLayer(e);
});
// 触摸移动--开启拖动
map.addEventListener("touchmove", function (e) {
map.enableDragging();
});
// 触摸结束--开启禁止拖动
map.addEventListener("touchend", function (e) {
map.disableDragging();
});
但是出现了个问题,那就是点击生成自定义覆盖物的时候出现闪烁问题;虽然我通过度娘去寻找答案,可惜的是没能知道;
如果是在Android上出现这个问题的话,可能是因为"图层添加后 就不要频繁修改,只需要修改图层上的点 就是覆盖物上的标注";
有关Android那篇博文【Android 百度地图频繁添加覆盖物后刷新出现地图闪烁问题(个人)】,这篇博文有点旧了;不过知识还是有用的嘛。
之后我就仔细想了一下,就觉得应该是触摸结束哪里的问题,所以就去掉了;至于之后没有禁止拖到,有没有关系到click事件;这个没有影响到click事件;
之后就修改为可拖动、可点击了;