Hallo,
Ik ben bezig met het bouwen van een website waarbij ik veel functies handmatig inbouw met behulp van JavaScript.
De website bevat een google map met markers. Zodra de gebruiker op een marker klikt verschijnt er onder de map informatie in een jquery accordion, behorende bij die marker. Dezelfde informatie + accordion wil ik ook graag openen wanneer de gebruiker op een link klikt buiten de map om. Hierop loop ik vast...
De functie addAreaMarkers wordt onload geladen via initialize(). In die functie maak ik markers en heb ik een function closure met daarin een click-listener per marker, die onclick de accordion aanmaakt en vult met content uit een json, behorende bij die marker.
Dit principe werkt. Ik heb ook een functie fillAreaIndex, waarin een lijst met linkjes wordt aangemaakt (areaNames). Die links refereren naar dezelfde markers, en wil ik graag per link dezelfde accordion met info laten tonen als de click-listener achter de marker. Hier kom ik dus niet uit.
Ik zie zelf weinig oplossingen behalve het kopiëren van de complete code in de betreffende fillAreaIndex-functie, maar dat wordt erg omslachtig. Is er een simpelere manier om deze info aan te roepen via een link?
Ik ben bezig met het bouwen van een website waarbij ik veel functies handmatig inbouw met behulp van JavaScript.
De website bevat een google map met markers. Zodra de gebruiker op een marker klikt verschijnt er onder de map informatie in een jquery accordion, behorende bij die marker. Dezelfde informatie + accordion wil ik ook graag openen wanneer de gebruiker op een link klikt buiten de map om. Hierop loop ik vast...
JavaScript:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| function initialize() { addAreaMarkers(); ... } function addAreaMarkers(...params...) { for(var i = 0; i < jsonLength; i++) { var areaMarker = new google.maps.Marker({ position: areaLatLng[i], map: map, icon: iconAreaBase + 'wijkfilter.png' }); (function(...params...) { var listenerMarker = google.maps.event.addListener(areaMarker, "click", function(e) { for(var j = 0; j < theProjectCount; j++) { var newPanel = document.createElement('div'); newPanel.innerHTML = /* Hierin de accordion met alle content uitlezen per marker */ }; }; })(...params...); }; }; function fillAreaIndex(...params...) { ... else if (clickedProv == 1) { var newAreaPanel4 = document.createElement('div'); newAreaPanel4.innerHTML = '<ul>' + '<li><a href=""><h1>' + townNames[l] + '</h1></a></li>' + '<li><a id="">' + areaNames[l] + '</a></li>' + '</ul>'; } } |
De functie addAreaMarkers wordt onload geladen via initialize(). In die functie maak ik markers en heb ik een function closure met daarin een click-listener per marker, die onclick de accordion aanmaakt en vult met content uit een json, behorende bij die marker.
Dit principe werkt. Ik heb ook een functie fillAreaIndex, waarin een lijst met linkjes wordt aangemaakt (areaNames). Die links refereren naar dezelfde markers, en wil ik graag per link dezelfde accordion met info laten tonen als de click-listener achter de marker. Hier kom ik dus niet uit.
Ik zie zelf weinig oplossingen behalve het kopiëren van de complete code in de betreffende fillAreaIndex-functie, maar dat wordt erg omslachtig. Is er een simpelere manier om deze info aan te roepen via een link?