2015-08-01 3 views
0
var i; 
var marker = []; 
var infowindow = []; 

for(i=0; i<results.length ; i++){ 
marker[i] = new google.maps.Marker({ 
    position: results[i].geometry.location, 
    map: map 
}); 

infowindow[i] = new google.maps.InfoWindow({ 
    content: "test" + i 
}); 

google.maps.event.addListener(marker[i], 'click', function(num) { 
    return function() { 
     infowindow[num].open(map, marker[num]); 
    } 
}(i)); 

} 

Я написал некоторый код, чтобы иметь различное содержимое информационного окна, когда вы нажимаете на каждый маркер (test1, test2, test3 ....), и информационное окно останется на экране, даже щелкнув еще один маркер.Как показывать только одно информационное окно при нажатии маркера?

Как показывать только одну инфузию при нажатии на каждый маркер?

+0

возможно дубликат [Google Maps JS API v3 - Простой Multiple Маркер Пример] (HTTP: //stackoverflow.com/questions/3059044/google-maps-js-api-v3-simple-multiple-marker-example) – geocodezip

ответ

1

Только помните, открытый в данный момент окно и закрыть его, когда вам нужно открыть еще один, подобный этому:

var curInfoWindow; 
google.maps.event.addListener(marker[i], 'click', function(num) { 
    return function() { 
    if (curInfoWindow != null) { 
     curInfoWindow.close(); 
    } 
    curInfoWindow = infowindow[num]; 

    infowindow[num].open(map, marker[num]); 
    } 
}(i)); 
0

Я считаю, что вам нужно итерировать информационное окно с помощью «i» и маркера, когда вы установите его в информационном окне. Номер не нужен.

Смежные вопросы