Apakah itu didokumentasikan di mana saja cara mengisi konten popup penanda setelah mengkliknya?
Juga, apakah mungkin untuk mengisi konten popup untuk semua penanda yang terlihat? Saya menggunakan Leaflet.markercluster dan akan lebih baik untuk hanya memuat konten popup ketika saya cukup memperbesar untuk melihat penanda individual.
Saya tidak terlalu baik dengan js dan pencarian saya tidak menghasilkan apa-apa tetapi saya merasa bahwa apa yang saya coba lakukan adalah mungkin ... ?
Terima kasih lagi!
Jika Anda membuat popup secara eksplisit maka Anda dapat mengatur kontennya:
var popup = new L.Popup();
popup.setLatLng(latlng);
popup.setContent('seme content');
map.openPopup(popup);
http://leaflet.cloudmade.com/reference.html#popup
Jadi dengarkan acara 'klik' pada penanda Anda (Anda dapat mengatur ini di MarkerClusterGroup). Kemudian ketika dipecat, Anda membuat sembulan dengan pesan pemuatan, memuat konten melalui ajax, lalu setContent di dalamnya ketika kembali.
var group = new L.MarkerClusterGroup();
group.on('click', showMarker);
function showMarker(marker) {
//use marker.layer for the marker IIRC
//Create popup here and fetch content
}
Semoga membantu!
Terima kasih, saya akan mempelajari ini dan menerapkannya!
Ini direferensikan dengan baik di google, jadi ini untuk orang yang mencari:
Berikut adalah contoh kerja dengan leaflet 0.7.3:
var marker = L.marker([48.859085, 2.347403]);
marker.bindPopup("Loading...")
marker.on('click', function(e) {
var popup = e.target.getPopup();
var url="DYNAMIC_CONTENT_URL";
$.get(url).done(function(data) {
popup.setContent(data);
popup.update();
});
Perhatikan bahwa Anda juga dapat meneruskan fungsi ke bindPopup()
. Itu akan dipanggil ketika popup dibuka dan harus mengembalikan String
atau HTMLElement
. Jadi versi lain dari kode Anda (yang tidak menentukan jenis acara mana yang menyebabkan sembulan terbuka):
var marker = L.marker([48.859085, 2.347403]);
marker.bindPopup(function() {
var el = $('<div/>');
$.get("DYNAMIC_CONTENT_URL").done(function(data) {
el.setContent(data);
popup.update();
});
return el;
});
Adakah yang punya contoh kerja langsung tentang ini yang ingin mereka bagikan?
Berikut plunkr-
@chriszrc yang menyelamatkan saya dari banyak masalah. Terima kasih sobat
@chriszrc Tidak dapat melakukannya menggunakan data JSON dari API.
Tidak ada popup yang muncul.
Contoh data terlihat seperti ini:
{"datapoint":[{"intensity":92,"latitud":"18.52","longitud":"82.4767"},{"intensity":68,"latitud":"17.7375","longitud":"82.8347"}]}
Saya mencoba menampilkan intensitas di sembulan.
Ini yang saya coba:
```
marker.bindPopup((popup)=>{
var el = document.createElement('div');
el.classList.add("kelasku");
$.getJSON(" http://www.example.com/data ",function(datapoint){
el.innerHTML = '
return el;
@kunaldhariwal Anda harus memposting plunkr atau sesuatu, tidak mungkin untuk mengatakan tanpa contoh. Sebagai permulaan, url tempat Anda memuat cuplikan kode ("http://www.example.com/data") tampaknya tidak mengembalikan json- yang valid
@chriszrc Itu adalah contoh URL. Untuk beberapa alasan yang jelas saya tidak dapat mengungkapkan url yang tepat.
Maaf tapi saya akan mencoba mencari tahu sesuatu.
Komentar yang paling membantu
Ini direferensikan dengan baik di google, jadi ini untuk orang yang mencari:
Berikut adalah contoh kerja dengan leaflet 0.7.3: