Antworten:
Ich nehme an, Sie möchten, dass der Inhalt nach einem Ereignis geändert wird, z. B. Mouseover, Kontextmenü oder etwas anderes.
Dazu können Sie den folgenden Code verwenden:
//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')
});
Wie Sie sehen können, können Sie mit der Methode marker._popup auf das Popup für den gewünschten Marker zugreifen und dann den darin enthaltenen Text mit der Methode setContent ändern.
popup.setContent Methodenreferenz
Hier ist ein Code auf Plunker, der dies demonstriert: http://plnkr.co/edit/vjS495QPXiJpKalrNpvo?p=preview
_popup
Vor ihm befindet sich ein Unterstrich, der angibt, dass es sich um eine private / Mitgliedsinstanz handelt, auf die nicht direkt zugegriffen werden sollte. Die richtige API ist Layer.setPopupContent () . z.B
marker.setPopupContent(newContent);
Es könnte zu spät sein, um zu antworten, aber für andere denke ich, dass der beste Weg hier ist
$('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;
});