Moin,
ich scheitere gerade an folgendem Problem und sehe einfach den Fehler nicht.
Ist bestimmt ein generelles Verständnis Problem aber ich komm einfach nicht drauf:
Ich habe ein Array von Adressen die ich gerne geocodieren möchte um auf einer Google Maps Karte ein paar Marker zu setzen. Das klappt auch ohne Probleme.
Dann möchte ich, hier scheitert es, jedem Marker eine Click-Funktion zuweisen die einen scrollbaren Div zu einem bestimmten Element scrollen lässt.
Jedes Element hat eine ID über die ich die Scrollfunktion ansprechen möchte.
Hier mal der Code:
function placeMarkers(addresses, map, id)
{
geocoder = new google.maps.Geocoder();
if (geocoder) {
for ( var i = 0; i < addresses.length; i++ )
{
geocoder.geocode( { 'address': addresses[i]}, function( results, status, i )
{
if (status == google.maps.GeocoderStatus.OK)
{
alert(i);
var position = jQuery("#" + id[i]).position();
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
google.maps.event.addListener(marker, 'click', function( evt, position )
{
alert(position);
target_top = position.top;
jQuery("#suche").scrollTop(target_top);
});
}
else
{
alert("Geocode was not successful for the following reason: " + status);
}
});
}
}
}
Die Variable id ist ein Array mit den ID's der Divs. Mein Problem ist nun, dass beim alert(i); lediglich ein undefined ausgegeben wird. Aber ich übergebe doch das i der Callbackfunktion - gleiches dann bei der Variable position, die ja laut meinem Verständnis auch korrekt an die Callbackfunktion übergeben wird.
Offensichtlich ist mein Verständnis da aber vollkommen daneben. :)
Für Denkanstöße in die richtige Richtung wäre ich Euch wirklich sehr dankbar!
Beste Grüße,
madblueshippie