web-dev-qa-db-fra.com

Comment ajouter une classe à un marqueur Dépliant?

J'utilise des divIcons personnalisés pour mes marqueurs Leaflet. Je veux ajouter une bordure à n'importe quel marqueur sur lequel je clique, avec du CSS simple:

.selectedMarker {
border: 10px solid gold;
}

Cependant, ce qui suit avec jQuery ne fonctionne pas:

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

J'ai ensuite essayé d'utiliser la propre méthode de Leaflet méthode addClass () . J'ai essayé d'appeler use it de la manière suivante:

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

Aucun de ces travaux. Comment ajouter la classe selectedMarker à mon marqueur?

20
yesman

Je l'ai fait en ajoutant une classe au marqueur avec

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

puis utilisez le css

.leaflet-marker-icon.selectedMarker{
  //your css
}
20
r8n5n

Dans 1.0 et 0.7, vous pouvez utiliser L.DomUtil pour ajouter des classes de suppression d'un élément DOM:

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

sans utiliser jQuery,

marker._icon.classList.add("className");
12
Mujtaba Kably