leaflet on marker click pass attribute
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
marker = L.marker(new L.LatLng(a[0], a[1]), { test: vid });
//marker = L.marker([36.83711,-2.464459], {myCustomId: "abc123"});
//marker.bindPopup(decoded,customOptions);
markers.addLayer(marker);
//console.log(a[0], a[1]);
marker.on("click", function(e) {
// this.options.myCustomId
// console.log(e.options.test);
console.log(e.options["test"]) //prints "data"
// common(e.latlng.lat, e.latlng.lng);
alert(e.options.test);
$.ajax({
type: 'GET',
url: "<?=HTML_ROOT?>ajax/getVestiging.php?vid="+vid,
//data: {waarde : waarde },
success: function(data) {
$('#mapBody').html(data);
$('#mapAdres').modal('show');
}
//marker = L.marker([36.83711,-2.464459], {myCustomId: "abc123"});
//marker.bindPopup(decoded,customOptions);
markers.addLayer(marker);
//console.log(a[0], a[1]);
marker.on("click", function(e) {
// this.options.myCustomId
// console.log(e.options.test);
console.log(e.options["test"]) //prints "data"
// common(e.latlng.lat, e.latlng.lng);
alert(e.options.test);
$.ajax({
type: 'GET',
url: "<?=HTML_ROOT?>ajax/getVestiging.php?vid="+vid,
//data: {waarde : waarde },
success: function(data) {
$('#mapBody').html(data);
$('#mapAdres').modal('show');
}
url: "ajax/getVestiging.php?vid="+vid Blijft altijd hetzelfde de laatste.
Als ik het attribuut test met een vid wil meegeven, dan krijg ik console errors:
winkels:1541 Uncaught TypeError: Cannot read properties of undefined (reading 'test')
at NewClass.<anonymous> (winkels:1541:50)
at NewClass.fire (leaflet-min.js:1:6407)
at NewClass._fireDOMEvent (leaflet-min.js:2:11898)
at NewClass._handleDOMEvent (leaflet-min.js:2:11124)
at HTMLDivElement.handler (leaflet-min.js:2:21095)
Snap er niks van, van volgens deze wijze zou het moeten werken met leaflet, zie hier wat voorbeelden.
https://stackoverflow.com/questions/17423261/how-to-pass-data-with-marker-in-leaflet-js
weet iemand een oplossing?
er staat een paar keer "e.options.test" in je script.
De foutmelding interpreteer ik als "Cannot read properties of undefined (reading 'test')"
"je probeert 'test' te lezen als property van iets dat geen object is maar een 'undefined' / leeg.
Dus dan zou e.options dus leeg zijn.
Mijn stappen zouden beginnen met het naar console.log sturen van e.options.
En dan kijken of dat inderdaad undefined. is.
Zo ja, dan het zelfde met e doen.
marker.on("click", function(e) {
vid = this.options.test;