Я создал всплывающее окно с Leaflet следующим образом:
marker.bindPopup(content).openPopup();
Как я могу обновить content
значение после этого?
Я полагаю, сделать это из маркера, что-то вроде этого:
marker.updatePopup(newContent);
Я полагаю, вы хотите, чтобы содержимое было изменено после какого-либо события, например, при наведении курсора, в контекстном меню или чем-то еще.
Для этого вы можете использовать следующий код:
//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')
});
Как видите, вы можете получить доступ к всплывающему окну для нужного маркера, используя метод marker._popup, а затем использовать метод setContent для изменения текста внутри него.
ссылка на метод popup.setContent
Вот некоторый код на Plunker, демонстрирующий это: http://plnkr.co/edit/vjS495QPXiJpKalrNpvo?p=preview
_popup
перед ним подчеркивание, указывающее, что это экземпляр private / member, и к нему нельзя обращаться напрямую. Правильным API является Layer.setPopupContent () . напримерmarker.setPopupContent(newContent);
источник
Возможно, будет поздно, чтобы ответить, но для других, я думаю, что лучшие способы здесь
http://jsfiddle.net/cPTQF/
источник
Вы можете получить всплывающее содержание с:
Установите содержание с помощью:
источник