我正在尝试实现一个程序,其中用户在信息窗口中输入描述,当您单击标记/引脚(用户在单击时先前插入)时会弹出该描述。现在代码工作正常,文本字段出现在infowindow上并将文本作为输入,但问题是当我关闭该文本字段并再次单击相同的标记时,它会丢失最后输入的内容。以下是我在此论坛上的专家帮助下编写的代码。 P.S:我正在尝试学习javascript,我是新手,所以如果这个问题低于腰带我道歉。
<!DOCTYPE html>
<html>
<head>
<title>Accessing arguments in UI events</title>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<style>
html, body, #map-canvas {
height: 100%;
margin: 0px;
padding: 0px
}
</style>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script>
function initialize() {
var mapOptions = {
zoom: 4,
center: new google.maps.LatLng(65.0126304,25.4703071)
};
var map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
google.maps.event.addListener(map, 'click', function(e) {
placeMarker(e.latLng, map);
});
}
function placeMarker(position, map) {
var marker = new google.maps.Marker({
position: position,
map: map
});
var infowindow = new google.maps.InfoWindow({
content : "<input type='text'>"
});
map.panTo(position);
google.maps.event.addListener( marker, "click", function() {
infowindow.open( map, marker );
});
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="map-canvas"></div>
</body>
</html>
答案 0 :(得分:0)
这是方法:
closeclick
,以便在信息窗关闭时使用填充的信息更新输入内容。index
。<强>解决方案强>
1-在index = 0;
function initialize() {
2-用这个更新你的infowindow创建者:
var infowindow = new google.maps.InfoWindow({
content : "<input id='myText" + index + "' type='text'>",
id : index
});
3-在标记点击事件后添加另一个事件:
google.maps.event.addListener( infowindow, "closeclick", function(e) {
infowindow.setContent("<input id='myText" + infowindow.id + "' type='text' value='" + document.getElementById("myText" + infowindow.id).value + "'>");
});
4- index++;
事件后添加closeclick
。
这可能不是最佳做法,但应该有效。