Anubis13 Δημοσ. 16 Ιουλίου 2013 Δημοσ. 16 Ιουλίου 2013 Καλησπέρα, προσπαθώ να περάσω την μεταβλητή coordinates έξω από το function αλλά δεν τα καταφέρνω. Καμμιά ιδέα? Το console.log μεσα στο function κανεί σωστά print ενώ έξω από αυτό φαίνεται να μην το αναγνωρίζει. Γιατί συμβαίνει αυτό? Αφού το coord ειναι global variable. var map = null; var geocoder = null; var coord = null; function initialize() { if (GBrowserIsCompatible()) { map = new GMap2(document.getElementById("map_canvas")); map.setCenter(new GLatLng(37.95, 23.75), 14); map.setUIToDefault(); geocoder = new GClientGeocoder(); } } function showAddress(address) { if (geocoder) { geocoder.getLatLng( address, function(point) { if (!point) { alert(address + " not found"); } else { map.setCenter(point, 15); var marker = new GMarker(point, {draggable: true}); map.addOverlay(marker); GEvent.addListener(marker, "dragend", function() { coord = marker.getLatLng().toUrlValue(6) marker.openInfoWindowHtml(marker.getLatLng().toUrlValue(6)); }); GEvent.addListener(marker, "click", function() { coord = marker.getLatLng().toUrlValue(6) marker.openInfoWindowHtml(marker.getLatLng().toUrlValue(6)); //console.log('coordinates', coord); }); GEvent.trigger(marker, "click"); } } ); } } console.log('coordinates', coord);
Moderators Praetorian Δημοσ. 16 Ιουλίου 2013 Moderators Δημοσ. 16 Ιουλίου 2013 Όταν τρέχεις το εξωτερικό console.log('coordinates', coord); δεν νομίζω ότι έχει τρέξει κάτι που αρχικοποιεί το coord. Εφόσον είναι εκτός κάποιας συνάρτησης, η συγκεκριμένη εντολή θα εκτελεστεί άμεσα μόλις το loading της σελίδας φτάσει στο συγκεκριμένο σημείο του scipt.
Xvipes Δημοσ. 16 Ιουλίου 2013 Δημοσ. 16 Ιουλίου 2013 Αν βάλεις this.coord = marker.getLatLng().toUrlValue(6) μέσα στην function δεν σου δουλεύει?
Moderators Praetorian Δημοσ. 16 Ιουλίου 2013 Moderators Δημοσ. 16 Ιουλίου 2013 Αυτό που κάνει ο παραπάνω κώδικας από μόνος του είναι: Αρχικοποιεί map, geocoder και coord σε null, ως global μεταβλητές. Ορίζει τις συναρτήσεις initialize() και showaddress(). Δεν τις καλεί. Καλεί το console.log('coordinates', coord); Οπότε επόμενο είναι σε εκείνη την φάση να είναι null το coord.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα