В настоящее время я пишу приложение на Rails 3, в котором широко используется API карт Google (v3). В настоящее время информационное окно для каждого маркера содержит ссылку, которая ведет пользователя на страницу для данного конкретного маркера, т.е. / Мест / 1. Пример моего кода ниже:
jQuery.getJSON("/places", function(json) {
if (json.length > 0) {
for (i=0; i<json.length; i++) {
var place = json[i];
var category = json[i].tag;
addLocation(place,category);
}
}
});
function addLocation(place,category) {
var marker = new google.maps.Marker({
позиция: новый google.maps.LatLng (place.lat, place.lng),
карта: карта,
title: place.name,
icon: image [place.tag]
});
marker.mycategory = category;
gmarkers.push(marker);
google.maps.event.addListener(marker, 'click', function() {
if (infowindow) infowindow.close();
infowindow = new google.maps.InfoWindow({
content: "<h3>"+ place.name +"</h3><p>" + place.tag +"</p><a href='/places/"+place.id+"'>Show more!</a>"
});
infowindow.open(map, marker);
});
}
Пока все работает нормально, но я бы хотел исключить обновление страницы, которое происходит после того, как пользователь щелкает ссылку в информационном окне, вводя вызов AJAX. Это возможно? Любая помощь будет высоко ценится!
EDIT:
Функция .live требуется для нацеливания на ссылку информационного окна, поскольку информационные окна часто создаются после того, как DOM готов. Так что я могу перейти по ссылке, но я пытаюсь обновить часть страницы из моего файла map.js. У меня сейчас что-то вроде этого:
jQuery('#place_link').live('click', function() {
//alert("You clicked here.");
jQuery('#place_details').load('/places/"+place.id" #place_details');
return false;
});
... где #place_details содержит информацию о маркере, который я хотел бы обновить с помощью вызова AJAX. Как я уже упоминал выше, часть .live работает нормально, так как предупреждение появляется, когда ссылка нажата (когда не закомментировано). Как я могу добиться этого?