У меня есть карта с несколькими слоями, на каждом из которых запускаются разные события. События mouseenter и mouseleave срабатывают успешно для всех функций, кроме двух. На двух разных слоях есть две функции, которые не реагируют на отпуск мышью. Я не уверен, почему это происходит.
map.on('mouseenter', 'potentialHospitals', function(e) {
map.getCanvas().style.cursor = 'pointer'
if (e.features.length > 0) {
if (hoveredHospitalId) {
map.setFeatureState(
{ source: 'potentialhospitals', id: hoveredHospitalId },
{ hover: false }
)
}
hoveredHospitalId = e.features[0].id;
map.setFeatureState(
{ source: 'potentialhospitals', id: hoveredHospitalId },
{ hover: true }
)
}
})
map.on('mouseleave', 'potentialHospitals', function() {
if (hoveredHospitalId) {
map.setFeatureState(
{ source: 'potentialhospitals', id: hoveredHospitalId },
{ hover: false }
)
}
hoveredHospitalId = null
})
map.on('mouseenter', 'demolishedHospitals', function(e) {
map.getCanvas().style.cursor = 'pointer'
if (e.features.length > 0) {
if (hoveredDemolishedId) {
map.setFeatureState(
{ source: 'demolishedHospitals', id: hoveredDemolishedId },
{ hover: false }
)
}
hoveredDemolishedId = e.features[0].id;
map.setFeatureState(
{ source: 'demolishedHospitals', id: hoveredDemolishedId },
{ hover: true }
)
}
})
map.on('mouseleave', 'demolishedHospitals', function() {
if (hoveredDemolishedId) {
map.setFeatureState(
{ source: 'demolishedHospitals', id: hoveredDemolishedId },
{ hover: false }
)
}
hoveredDemolishedId = null
})