我有一张带有几个标记的地图。我用这段代码构建这些标记:
var markers = {},
lbl = 'unique';
markers[lbl] = L.circleMarker(ll,
{ radius: 8,
fillColor: '#ff0000',
color: '#00ff00',
weight: 0,
opacity: 1,
fillOpacity: 0.9,
className: 'svgMarker'
})
.bindLabel('This is '+lbl)
.addTo(markerLayer)
.addTo(map)
.on('click', clickHandler);;
在clickHandler中我想加载一些东西,具体取决于我点击的哪个标记。为了区分它们,我有一个lbl
(标签)var,它包含标记的唯一字母数字ID。
function clickHandler(event){
//- zoom to the marker
map.setView(ev.latlng, 16);
//- Load the marker dependent stuff.
// how can I pass the unique label to this function?
}
有没有办法通过鼠标事件传递唯一ID,或者是否有其他方法可以为标记提供“属性”,我可以在clickHandler中读出?
答案 0 :(得分:0)
只需在标记中添加一个属性(只是javascript的东西)...你可以在事件处理程序中使用上下文“this”将其恢复
var marker = L.marker([48.8588589,2.3470599]);
marker.id = 'unique_id';
marker.addTo(map);
marker.on('click', clickHandler);
function clickHandler(event) {
console.log(this.id);
}