Answers:
我想您希望在发生某些事件(例如,鼠标悬停,上下文菜单或其他任何事件)后更改内容。
为此,您可以使用以下代码:
//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方法更改其中的文本。
这是在Plunker上演示此代码的一些代码:http ://plnkr.co/edit/vjS495QPXiJpKalrNpvo?p=preview
_popup
它前面有一个下划线,表示它是一个私有/成员实例,不应直接访问。正确的API是Layer.setPopupContent()。例如
marker.setPopupContent(newContent);
可能迟到了,但对于其他人,我认为最好的方法就在这里
$('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;
});