Làm cách nào để cập nhật nội dung bật lên từ điểm đánh dấu?


11

Tôi đã tạo một cửa sổ bật lên với Tờ rơi làm như vậy:

marker.bindPopup(content).openPopup();

Làm thế nào tôi có thể cập nhật contentgiá trị sau đó?

Tôi cho rằng để làm điều đó từ điểm đánh dấu, một cái gì đó như thế này:

marker.updatePopup(newContent);

Câu trả lời:


9

Tôi cho rằng bạn muốn nội dung được thay đổi sau khi một số sự kiện xảy ra, như rê chuột, bối cảnh, hoặc bất cứ điều gì khác.

Để làm như vậy, bạn có thể sử dụng mã sau đây:

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

Như bạn có thể thấy, bạn có thể truy cập cửa sổ bật lên cho điểm đánh dấu mong muốn bằng phương thức Marker._popup, sau đó sử dụng phương thức setContent để thay đổi văn bản bên trong nó.

tham chiếu phương thức popup.setContent

Đây là một số mã trên Plunker chứng minh điều này: http://plnkr.co/edit/vjS495QPXiJpKalrNpvo?p=preview


Tôi thấy rằng trong quá trình di chuột tôi cần phải làm: this.getPopup.setContent ('blah blah blah');
TheSteve0

15

_popupcó một dấu gạch dưới ở phía trước để chỉ ra rằng đó là một cá thể / thành viên riêng tư và không nên được truy cập trực tiếp. API chính xác là Layer.setPopupContent () . ví dụ marker.setPopupContent(newContent);


3

Có thể đến trễ để trả lời, nhưng đối với những người khác, tôi nghĩ cách tốt nhất là ở đây

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

Tôi biết điều này đã cũ, nhưng nó đã xuất hiện trong kết quả tìm kiếm Google của tôi vì vậy điều đó có nghĩa là nó cũng có thể xảy ra với người khác ... Vấn đề với phương pháp này là # 1 nếu cửa sổ bật lên hiện không mở, nhấp vào nút đó (hoặc bất cứ điều gì bạn liên kết với) không làm gì cả. Thứ hai, nếu bạn làm mờ cửa sổ bật lên và nhấp lại vào nó, bạn sẽ có được nội dung gốc chứ không phải nội dung mới!
DR

1

Bạn có thể lấy nội dung bật lên với:

marker.getPopup().getContent();

Đặt nội dung với:

marker.getPopup().setContent("123");
marker.getPopup().update();
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.