在 tap/click、hide/show L.control 上(传单)

On tap/click, hide/show L.control (Leaflet)

我希望用户能够点击屏幕切换L.control,以获得更清晰的地图。

这是我用来切换的代码 L.control:

              var dragged = false
              window.addEventListener('mousedown', function () {
                dragged = false
              })
              window.addEventListener('mousemove', function () {
                dragged = true
              })           
              $("#mapid").on("click", function () {
                if (dragged == false && $(window).width() < 960) {
                  return $(".leaflet-left").slideToggle(300) && $(".leaflet-right").slideToggle(300);
                }
              })

这可行,但问题是 L.control 也会在点击地图上的标记时切换。

单击标记时如何忽略它?

https://jsfiddle.net/2frpcL4y/

在地图上使用 Leaflet 内部事件click

map.on("click", function () {
   if ($(window).width() < 960) {
      $(".leaflet-left").slideToggle(300) && $(".leaflet-right").slideToggle(300);
   }
})

检查弹出窗口是否打开:

function isPopupOpen(){
    var popupOpen = false;
    map.eachLayer((layer)=>{
        if(layer instanceof L.Popup){
            popupOpen = true;
        }
    })
    return popupOpen;
}