【问题标题】:How to prevent openning a popup when you choose a layer to show in leaflet?选择要在传单中显示的图层时如何防止打开弹出窗口?
【发布时间】:2023-02-17 21:53:50
【问题描述】:

我正在从事一个带有传单的项目,其中显示了三层

每当您想显示该层的所有标记时,您都可以启用或禁用。 每个标记都有一个弹出窗口,当您单击该标记时它会打开

我遇到的问题是,当您点击任何图层并激活它时,标记会显示其弹出窗口。

有没有办法在激活图层时不打开它?至少保持它关闭并在您单击它时打开它?

谢谢同事!

【问题讨论】:

    标签: leaflet popup google-maps-markers


    【解决方案1】:

    您可以修改向地图添加标记的代码。

    一种解决方案是向每个标记添加 mouseovermouseout 事件侦听器。 mouseover 事件打开弹出窗口,mouseout 关闭它。 因此,这使得弹出窗口仅在您将鼠标悬停在标记上时打开,而不是在您激活图层时打开,您可以从这里开始进行相应的修改。

    这是一段代码作为参考:

    var layer1 = L.layerGroup();
    
    for (var i = 0; i < markers1.length; i++) {
      var marker = L.marker(markers1[i].latlng, {
        icon: markers1[i].icon
      });
      marker.bindPopup(markers1[i].popup);
      marker.on('mouseover', function (e) {
        this.openPopup();
      });
      marker.on('mouseout', function (e) {
        this.closePopup();
      });
      marker.addTo(layer1);
    }
    
    var layer2 = L.layerGroup();
    
    for (var i = 0; i < markers2.length; i++) {
      var marker = L.marker(markers2[i].latlng, {
        icon: markers2[i].icon
      });
      marker.bindPopup(markers2[i].popup);
      marker.on('mouseover', function (e) {
        this.openPopup();
      });
      marker.on('mouseout', function (e) {
        this.closePopup();
      });
      marker.addTo(layer2);
    }
    
    var layer3 = L.layerGroup();
    
    for (var i = 0; i < markers3.length; i++) {
      var marker = L.marker(markers3[i].latlng, {
        icon: markers3[i].icon
      });
      marker.bindPopup(markers3[i].popup);
      marker.on('mouseover', function (e) {
        this.openPopup();
      });
      marker.on('mouseout', function (e) {
        this.closePopup();
      });
      marker.addTo(layer3);
    }
    
    var map = L.map('map', {
      layers: [layer1, layer2, layer3]
    });
    
    var baseLayers = {
      "Layer 1": layer1,
      "Layer 2": layer2,
      "Layer 3": layer3
    };
    
    L.control.layers(baseLayers).addTo(map);
    

    【讨论】:

      猜你喜欢
      • 2021-09-27
      • 2010-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-16
      • 1970-01-01
      相关资源
      最近更新 更多