Javascript 谷歌地图信息窗口在点击循环时未打开

Javascript 谷歌地图信息窗口在点击循环时未打开,javascript,google-maps,click,infowindow,Javascript,Google Maps,Click,Infowindow,我无法让Google Map API上的信息窗口在循环内单击时打开,但是所有信息窗口都显示外部单击事件 var map; function initMap() { var mapProp = { center: new google.maps.LatLng(-22, 133), zoom: 4, mapTypeId: google.maps.MapTypeId.ROADMAP }; map = new google.maps.Ma

我无法让Google Map API上的信息窗口在循环内单击时打开,但是所有信息窗口都显示外部单击事件

var map;
function initMap() {
    var mapProp = {
       center: new google.maps.LatLng(-22, 133),
       zoom: 4,
       mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(document.getElementById('map'), mapProp);
}
var request = new XMLHttpRequest();
request.open('GET', 'https://...', true);
request.onload = function() {
    if (request.status >= 200 && request.status < 400) {
        // Success!
        var data = JSON.parse(request.responseText);
        appendData(data.data);
        console.log(data, "Data received");
    } else {
        // We reached our target server, but it returned an error
    }
};
request.onerror = function() {
    // There was a connection error of some sort
};
request.send();
function appendData (data) {
    var markers = [];
    for (var i = 0; i < data.length; i++) {
        var pos = new google.maps.LatLng(data[i].Latitude, data[i].Longitude);
        markers[i] = new google.maps.Marker({
            position: pos,
            map: map,
            icon: '//...icon.png'
        });
        var infowindow = new google.maps.InfoWindow({
            content: data[i].Name
        });
        //infowindow.open(map, markers[i]); - this shows all infowindows..
        //Something wrong with this click event
        google.maps.event.addListener(markers[i], 'click', function() {
            infowindow.open(map, markers[i]);
        });
    }
};
var映射;
函数initMap(){
var mapProp={
中心:新google.maps.LatLng(-22133),
缩放:4,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=new google.maps.map(document.getElementById('map'),mapProp);
}
var request=new XMLHttpRequest();
request.open('GET','https://...",对),;
request.onload=函数(){
如果(request.status>=200&&request.status<400){
//成功!
var data=JSON.parse(request.responseText);
追加数据(data.data);
控制台日志(数据,“收到的数据”);
}否则{
//我们到达了目标服务器,但它返回了一个错误
}
};
request.onerror=函数(){
//出现了某种连接错误
};
request.send();
函数追加数据(数据){
var标记=[];
对于(变量i=0;i
一切正常都解决了。为标记添加了说明和id,并单击事件触发

markers[i] = new google.maps.Marker({
                position: pos,
                map: map,
                icon: 'icon.png',
                description:"<div style='text-transform:uppercase;'><h6 style='color:red'>" + data[i].Name + "</h6>" + data[i].Description + "</div>",
                id: i
});
google.maps.event.addListener(markers[i], 'click', function () {

                infowindow.setContent(markers[this.id].description);
                infowindow.open(map, this);
});
markers[i]=新的google.maps.Marker({
职位:pos,,
地图:地图,
图标:“icon.png”,
说明:“+数据[i]。名称+”+数据[i]。说明+”,
id:我
});
google.maps.event.addListener(标记[i],'click',函数(){
setContent(标记[this.id].description);
打开(地图,这个);
});

感谢您发布此+1