參考 https://blog.csdn.net/Davis_Dxs/article/details/82425211
具體問題:
對 “地圖” 添加 click 事件,在點擊地圖時,可以在獲取到點擊位置的 經緯度。代碼如下圖所示

此時再次點擊地圖發現點擊事件會出現不被觸發,點擊事件無效。
解決方案
我經過了好長時間的網上探索,發現了兩個對我有用的信息,
一、第一條信息我不明白是如果解決的問題,所以沒用(其實是我用了之后沒效果。。。);
附該信息博客地址:https://blog.csdn.net/yyyuuueeee/article/details/49511173
希望大家看了這篇博客有所收獲,我感覺這篇博客是能解決該問題的,但是我用了就是沒效果。。
二、在查找資料的過程中突然發現一個非常有用的信息
手機端 禁用地圖拖拽 click事件就會被觸發
我立刻就測試了一下,我靠,果然有作用! 但是蛋疼的問題有出現了,此時地圖已經不可以拖拽了。
我先說下 禁用地圖拖拽 方法:
// 禁用地圖拖拽 map.disableDragging(); // 開啟地圖拖拽 map.enableDragging();
具體可以參考 百度地圖 類參考文檔:http://lbsyun.baidu.com/cms/jsapi/reference/jsapi_reference.html
解決移動端 可以拖拽又可以點擊
百度地圖事件中有 針對 移動端的 觸摸事件:

解題思路:
觸摸結束 --> 開啟 禁止拖拽
觸摸移動中 --> 開啟 啟用拖拽
重點代碼
var map = new BMap.Map("atlas");
map.centerAndZoom(this.city, 12);
map.setMapType(BMAP_HYBRID_MAP);
map.addControl(new BMap.ScaleControl());
map.addControl(new BMap.MapTypeControl({
mapType: [
BMAP_NORMAL_MAP,
BMAP_HYBRID_MAP
]
}));
// TODO: 觸摸移動時觸發此事件 此時開啟可以拖動。雖然剛初始化該地圖不可以拖動,但是可以觸發拖動事件。
map.addEventListener("touchmove", function (e) {
map.enableDragging();
});
// TODO: 觸摸結束時觸發次此事件 此時開啟禁止拖動
map.addEventListener("touchend", function (e) {
map.disableDragging();
});
// 初始化地圖 禁止拖動 注:雖禁止拖動,但是可以出發拖動事件
map.disableDragging();
map.enableScrollWheelZoom(true);
