Javascript 保存按钮未附加到右侧信息窗口,谷歌地图
添加删除功能并将我的标记添加到数组中后,“保存”按钮/保存功能不再附加到我的谷歌地图上的右侧信息窗口 如果我打开两个信息窗口,在这两个窗口中输入信息,然后在我打开的第一个窗口上单击“保存”,它将更新用“You submitted”创建的最后一个信息窗口,并将保存两次。根据不同的堆栈溢出帖子,我尝试了一些不同的方法,包括在infowindow的初始化过程中添加迭代器,还添加了一个外部函数来添加标记,但没有成功。我还确保在初始化之前声明了全局变量(如map)。我是一个挣扎了好几天的努贝人 我确信这个问题围绕着我对infowindow如何连接到数组中的标记的困惑。我的代码在下面的代码片段中Javascript 保存按钮未附加到右侧信息窗口,谷歌地图,javascript,arrays,google-maps-api-3,save,Javascript,Arrays,Google Maps Api 3,Save,添加删除功能并将我的标记添加到数组中后,“保存”按钮/保存功能不再附加到我的谷歌地图上的右侧信息窗口 如果我打开两个信息窗口,在这两个窗口中输入信息,然后在我打开的第一个窗口上单击“保存”,它将更新用“You submitted”创建的最后一个信息窗口,并将保存两次。根据不同的堆栈溢出帖子,我尝试了一些不同的方法,包括在infowindow的初始化过程中添加迭代器,还添加了一个外部函数来添加标记,但没有成功。我还确保在初始化之前声明了全局变量(如map)。我是一个挣扎了好几天的努贝人 我确信这个
var标记=[];
var uniqueId=1;
var标记;
var信息窗口;
var映射;
var-html;
函数初始化(){
变量映射选项={
缩放:8,
中心:{
拉脱维亚:48.591130,
液化天然气:-119.682349
},
mapTypeControlOptions:{
MapTypeId:['roadmap']
}
};
var map=new google.maps.map(document.getElementById(“dvMap”)、mapOptions);
//将单击事件处理程序附加到映射。
google.maps.event.addListener(映射,'click',函数(e){
//确定用户单击的位置。
var位置=e.latLng;
//创建一个标记并将其放置在地图上。
var marker=new google.maps.marker({
位置:位置,,
地图:地图,
});
//设置唯一id
marker.id=uniqueId;
uniqueId++;
标记器。推(标记器);
//将单击事件处理程序附加到标记。
google.maps.event.addListener(标记“单击”,函数(e){
html=“添加注释
”+
"" +
“问题/想法:”+
“地址:”+
"";
html+=“”+
"";
infowindow=新建google.maps.infowindow({
内容:html
});
setContent(html);
信息窗口。打开(地图、标记);
});
//将标记添加到数组中。
标记器。推(标记器);
});
};
函数删除标记(id){
//从数组中查找并删除标记
对于(var i=0;i=1){
document.getElementById(“message”).innerHTML=“位置已添加。内容:name=“+name+”,address=“+address+”latlng=“+latlng;
}
});
infowindow.setContent(“您提交的内容:name=“+name+”,address=“+address+”latlng=“+latlng”);
}
}
}
函数下载url(url,回调){
var请求=window.ActiveXObject?
新的ActiveXObject('Microsoft.XMLHTTP'):
新的XMLHttpRequest;
request.onreadystatechange=函数(){
if(request.readyState==4){
request.onreadystatechange=doNothing;
回调(request.responseText、request.status);
}
};
打开('GET',url,true);
请求发送(空);
函数doNothing(){}
}
google.maps.event.addDomListener(窗口“加载”,初始化)代码>
好的,所以我移动了push语句,以便在声明infowindow后将标记推送到数组中。这使save函数无法多次保存html内容。所以保存现在工作得很好,唯一的问题是我能够用消息“yousubmitted…”更新正确的信息窗口
它仍在更新我打开的最后一个信息窗口
var标记=[];
var uniqueId=1;
var标记;
var信息窗口;
var映射;
var-html;
函数初始化(){
变量映射选项={
缩放:8,
中心:{
拉脱维亚:48.591130,
液化天然气:-119.682349
},
mapTypeControlOptions:{
MapTypeId:['roadmap']
}
};
var map=new google.maps.map(document.getElementById(“dvMap”)、mapOptions);
//将单击事件处理程序附加到映射。
google.maps.event.addListener(映射,'click',函数(e){
//确定用户单击的位置。
var位置=e.latLng;
//创建一个标记并将其放置在地图上。
var marker=new google.maps.marker({
位置:位置,,
地图