Bonjour à tous,
Je suis confronté à un problème qui me semble très bizarre. J'ai l'impression que jquery n'attend pas la fin du foreach avant de faire le return…
En gros, mon code ne s'exécute pas dans le bon ordre
Quelqu'un aurait-il une solution?
Merci beaucoup!
La console me sort:
return
data[object Object]
entré dans boucle0
entré dans boucle1
Alors que je voudrais:
boule 0
boule 1
return
ensuite data
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 $(document).ready(function() { if (navigator.geolocation){ navigator.geolocation.getCurrentPosition(initialize); } else { alert("Votre navigateur ne prend pas en compte la géolocalisation HTML5"); } }); function initialize(position) { var data = getAllGeoLoc(); console.log('data'+ data); var lat = position.coords.latitude; var lng = position.coords.longitude; var mapOptions = { center: new google.maps.LatLng(lat, lng), zoom: 12, mapTypeId: google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById("map"), mapOptions); for (var i = 0; i < data.position.length; i++) { var marker = new google.maps.Marker({ position: new google.maps.LatLng(data.position[i].lat,data.position[i].lng), title:data.position[i].title }); console.log(data.position[i].lat); marker.setMap(map); } } function getAllGeoLoc(){ var url = 'http://localhost:8080/content/capture/map.search.html'; var geoArray = {"position": Array()}; $.getJSON(url, function (geoLocData){ $.each(geoLocData, function(index, elem){ console.log('entré dans boucle'+ index); geoArray.position.push(( {"lat": elem.lat, "lng" : elem.lng, "title" : elem.title} )); }); } ); console.log('return'); return geoArray; }
Partager