百度地圖移動端map點擊事件無效、不觸發 解決方案

一、問題描述:用手機瀏覽器訪問百度地圖,地圖的click事件點擊無效。有時點擊能夠獲取經緯度,有時候沒有反應。

//TODO:click 事件 移動端會被屏蔽
map.addEventListener("click",function(e){
    console.log("該點的經緯度:"+e.point.lng+","+e.point.lat);
})

二、解決方案

手機端 禁用地圖拖拽 click事件就會被觸發

var map;
/**
 * 加載地圖
 */
function loadMap() {
    map = new BMap.Map("allmap");    // 創建Map實例
    map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);// 初始化地圖,設置中心點座標和地圖級別
    //添加地圖類型控件
	map.addControl(new BMap.MapTypeControl({
		mapTypes:[
            BMAP_NORMAL_MAP,
            BMAP_HYBRID_MAP
        ]}));	  
	map.setCurrentCity("北京");          // 設置地圖顯示的城市 此項是必須設置的
    map.enableScrollWheelZoom();     //開啓鼠標滾輪縮放
    var mapStyle = {
        features: ["road", "building", "water", "land"]//隱藏地圖上的poi
    };
    map.setMapStyle(mapStyle);
    //TODO:解決移動端 click事件點擊無效
    map.addEventListener("touchmove", function (e) {
        map.enableDragging();
    });
    // TODO: 觸摸結束時觸發次此事件  此時開啓禁止拖動
    map.addEventListener("touchend", function (e) {
        map.disableDragging();
    });

    // 初始化地圖 禁止拖動   注:雖禁止拖動,但是可以出發拖動事件
    map.disableDragging();
    map.addEventListener("click", function(e){
        alert("該點的經緯度:"+e.point.lng+","+e.point.lat);
    });
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章