Bạn cần đính kèm trình xử lý sự kiện vào từng điểm đánh dấu. Trình xử lý nhấp chuột có thể đặt document.location
thành URL của trang bạn muốn truy cập.
var marker = new GMarker(location);
GEvent.addListener(marker, "click", function() {
window.location = theURL;
});
map.addOverlay(marker);
Vì có thể bạn sẽ thêm điểm đánh dấu trong vòng lặp, bạn sẽ cần đảm bảo mỗi người nhận được URL riêng. Vì các bao đóng giữ các biến thực mà chúng truy cập (không phải các giá trị của chúng), bạn có thể cần phải đặt ít nhất addListener
mã trong hàm riêng của nó để tạo phạm vi riêng của nó. vòng lặp của bạn sẽ trông giống như sau:
function createMarker(location, url) {
var marker = new GMarker(location);
GEvent.addListener(marker, "click", function() {
window.location = url;
});
return marker;
}
// Assuming locations is an array of objects with lat, lng, and url properties
for (var i = 0; i < locations.length; i++) {
var loc = locations[i];
map.addOverlay(createMarker(new GLatLng(loc.lat, loc.lng), loc.url));
}
Nguồn
2010-03-22 01:59:08
Thanks for the help! – Mike
Độc giả của câu trả lời này cần lưu ý rằng GEvent cần được thay thế bằng google.maps.event nếu bạn đang sử dụng v3 của API. Hãy xem câu trả lời khác với số phiếu cao! –