如何获取L.DivIcon传单的实例

问题描述

我正在尝试将类添加到工作正常的标记中。但是,如果是divIcon,则需要使用不同的样式。因此,如果实例是DivIcon,我将尝试设置另一个className。

下面的代码始终是正确的,因为L.divIcon仍然是标记(?)

if(e.target instanceof L.DivIcon) {
    let icon = e.target._icon
    if(!(L.DomUtil.hasClass(icon,'leaflet-pm-divIcon-selected'))) {
      L.DomUtil.addClass(e.target._icon,'leaflet-pm-divIcon-selected')
    }
  } 
  else if (e.target instanceof L.Marker) {
    let icon = e.target._icon
      if(!(L.DomUtil.hasClass(icon,'leaflet-pm-marker-selected'))) {
      offsetMarker(icon,8)
      L.DomUtil.addClass(e.target._icon,'leaflet-pm-marker-selected')
    }
  }

e.target instanceof L.Marker && e.target instanceof L.DivIcon也不起作用

解决方法

检查图层图标是否为L.DivIcon:

e.target.getIcon() instanceof L.DivIcon