页面加载时,Leaflet.js弹出窗口可见

时间:2019-11-22 13:14:26

标签: javascript leaflet

我正在将此插件用于项目。当我创建弹出窗口时,它们在加载时被激活。我希望它们在用户单击标记时打开。有帮助吗?

const mymap = L.map('mapid').setView([40.399245, 49.876386], 10);
const tile = L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken}', {
  attribution: 'Map data &copy; <a href="https://www.mapbox.com/">Mapbox</a>',
  maxZoom: 18,
  id: 'mapbox.streets',
  accessToken: 'TOKEN'
}).addTo(mymap);

const mapIcon = L.icon({
  iconUrl: 'assets/image/icons/marker.png',
  iconSize: [40, 40],
  iconAnchor: [20, 20]
})


const marker = L.marker([40.399245, 49.876386], { icon: mapIcon }).addTo(mymap);
const marker = L.marker([40.399245, 49.876386], { icon: mapIcon }).addTo(mymap);
var popup = L.popup({}).setContent('content')

marker.bindPopup(popup).openPopup();
marker.setLatLng([40.399245, 49.876386]).addTo(mymap);

1 个答案:

答案 0 :(得分:0)

这行代码是罪魁祸首:

marker.bindPopup(popup).openPopup();

在这行上,您将弹出窗口绑定到标记,然后立即打开弹出窗口。省略openPopup()方法应该可以解决您的问题。

marker.bindPopup(popup);

按照Leaflet documentation

  

用法示例

     

如果您只想将弹出窗口绑定到标记,请单击然后将其打开,这非常简单:

     

marker.bindPopup(popupContent).openPopup();

相关问题