Событие Maple GL JS mouseleave не сработало для одного определенного элемента слоя c - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть карта с несколькими слоями, на каждом из которых запускаются разные события. События 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
    })
...