gpt4 book ai didi

javascript - 单击标记 map 框

转载 作者:行者123 更新时间:2023-12-05 04:03:12 28 4
gpt4 key购买 nike

我有它,所以点击 map 会在那个点创建一个标记。我正在尝试向标记添加一个事件,该事件将在单击标记时返回 lnglat。问题是我无法单击标记, map 只是不断创建新标记。

map.on('click', function(e){
let marker = new mapboxgl.Marker().setLngLat(e.lngLat).addTo(map);
marker.on('click', function(){
console.log('hello');
});
});

最佳答案

标记是简单的 HTML 元素,因此您可以通过在其 DOM 节点上调用 addEventListener 直接向它们添加事件监听器:

map.on('click', function(e){
var el = document.createElement('div');
el.className = 'marker';
el.style.height = '20px';
el.style.width = '20px';
el.style.backgroundColor = 'black';

el.addEventListener('click', function(e){
// Prevent the `map.on('click')` from being triggered
e.stopPropagation();
console.log('hello');
});

let marker = new mapboxgl.Marker(el).setLngLat(e.lngLat).addTo(map);
});

https://codepen.io/eddydg/pen/gZpbRj?editors=1010

关于javascript - 单击标记 map 框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53697589/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com