jquery 如何将类添加到Leaflet标记?

j2qf4p5b  于 2023-05-17  发布在  jQuery
关注(0)|答案(4)|浏览(173)

我使用自定义divIcons为我的传单标记。我想用一些简单的CSS为我点击的任何标记添加一个边框:

.selectedMarker {
border: 10px solid gold;
}

但是,以下jQuery不起作用:

$(marker).addClass('selectedMarker');

然后我尝试使用Leaflet自己的addClass()方法。我试着用以下方法调用它:

marker.addClass('selectedMarker');
L.addClass(marker, 'selectedMarker');
addClass(marker, 'selectedMarker');
DomUtil.addClass(marker, 'selectedMarker');

这些都不管用如何将selectedMarker类添加到标记中?

hmae6n7t

hmae6n7t1#

在Python 1.0和0.7中,你可以使用L.DomUtil从DOM元素中添加和删除类:

L.DomUtil.addClass(marker._icon, 'className');
L.DomUtil.removeClass(marker._icon, 'className');
hujrc8aj

hujrc8aj2#

我已经通过向标记添加一个类

var marker = L.marker(loc);
marker.on('click', function() {
    $(marker._icon).addClass('selectedMarker');
}

然后使用CSS

.leaflet-marker-icon.selectedMarker{
  //your css
}
c6ubokkw

c6ubokkw3#

如果不使用jQuery,

marker._icon.classList.add("className");
cnwbcb6i

cnwbcb6i4#

我正在使用marker = new Marker()语法,然后marker._icon不工作。解决这个问题的方法是设置一个新图标,用另一个类初始化,就像这样

const originalIcon = new Icon({
    iconUrl: iconImg,
    iconSize: [50, 50],
});
const iconWithNewClass = new Icon({
    iconUrl: iconImg,
    iconSize: [50, 50],
    className: 'new-class',
});

...

marker.setIcon(iconWithNewClass);

相关问题