百度地圖 app 點擊事件無效、不觸發 解決方案


參考 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);

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM