Réponses:
Je suppose que vous voulez que le contenu soit modifié après qu'un événement se soit produit, comme le survol de la souris, le menu contextuel ou toute autre chose.
Pour ce faire, vous pouvez utiliser le code suivant:
//marker creation
var marker = L.marker([44.63, 22.65]).bindPopup('something').addTo(map);
marker.openPopup();
//changing the content on mouseover
marker.on('mouseover', function(){
marker._popup.setContent('something else')
});
Comme vous pouvez le voir, vous pouvez accéder à la fenêtre contextuelle du marqueur souhaité à l'aide de la méthode marker._popup, puis utiliser la méthode setContent pour modifier le texte à l'intérieur.
Référence de la méthode popup.setContent
Voici un code sur Plunker qui le démontre: http://plnkr.co/edit/vjS495QPXiJpKalrNpvo?p=preview
_popup
a un trait de soulignement devant pour indiquer qu'il s'agit d'une instance privée / membre et qu'il ne faut pas y accéder directement. L'API correcte est Layer.setPopupContent () . par exemple
marker.setPopupContent(newContent);
Peut-être trop tard pour répondre, mais pour d'autres, je pense que la meilleure façon est ici
$('button').click(function() {
// Update the contents of the popup
$(popup._contentNode).html('The new content is much longer so the popup should update how it looks.');
// Calling _updateLayout to the popup resizes to the new content
popup._updateLayout();
// Calling _updatePosition so the popup is centered.
popup._updatePosition();
return false;
});