Pop-up içeriği işaretleyicisinden nasıl güncellenir?


12

Leaflet ile bir açılır pencere oluşturdum:

marker.bindPopup(content).openPopup();

contentDaha sonra değeri nasıl güncelleyebilirim ?

İşaretçi, böyle bir şey yapmak için varsayalım:

marker.updatePopup(newContent);

Yanıtlar:


10

Fareyle üzerine gelme, içerik menüsü veya başka bir şey gibi bir etkinlik gerçekleştikten sonra içeriğin değiştirilmesini istediğinizi varsayalım.

Bunu yapmak için aşağıdaki kodu kullanabilirsiniz:

//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')
});

Gördüğünüz gibi, marker._popup yöntemini kullanarak istenen işaretleyicinin açılır penceresine erişebilir ve içindeki metni değiştirmek için setContent yöntemini kullanabilirsiniz.

popup.setİçerik yöntemi başvurusu

Plunker'da bunu gösteren bazı kodlar: http://plnkr.co/edit/vjS495QPXiJpKalrNpvo?p=preview


Fareyle üzerine gelince yapmam gerektiğini buldum: this.getPopup.setContent ('blah blah blah');
TheSteve0


3

Cevap vermek için geç olabilir, ama diğerleri için en iyi yolların burada olduğunu düşünüyorum

http://jsfiddle.net/cPTQF/

$('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;
});

Bunun eski olduğunu biliyorum, ancak Google arama sonuçlarımda geldi, bu da başkaları için de olabileceği anlamına geliyor ... Bu yöntemle ilgili sorun, pop-up şu anda açık değilse, o düğme tıklaması (veya her neyse) hiçbir şey yapmaz). İkinci olarak, pop-up'ı küçültüp tekrar tıklarsanız, yeni içeriği değil orijinal içeriği alırsınız!
DR

1

Pop-up içeriğini şunlarla alabilirsiniz:

marker.getPopup().getContent();

İçeriği şununla ayarlayın:

marker.getPopup().setContent("123");
marker.getPopup().update();
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.