【发布时间】:2014-06-26 20:04:21
【问题描述】:
来自 jsFiddle 的另一个 {"error": "Please use POST request"} 阻止了我在得到用户确认后删除 google-maps-api-3 标记的尝试。 My jsFiddle code is here。您可以先通过单击地图创建一个或多个标记,然后右键单击其中一个标记来查看错误。最后,点击“删除”按钮。
代码borrows heavily from this code。
编辑
3 处更正。
正如评论中指出的,我没有更新 jsFiddle。可以在/5/ 找到更正的版本。主要的区别是监听器中“右键单击”的代码行被注释掉了,因为它应该一直都是。
下面对注释掉一行代码进行了同样的修正。
除非我手动更改 jsfiddle 代码(例如完全删除注释掉的行),否则我不再收到错误“{”错误“:”请使用 POST 请求“}”,然后控制-return,然后尝试添加和删除标记。所以这不再是一个问题,我相信。相反,新问题是,如果有多个标记并且我只单击其中一个并请求删除它,那么 all 标记将被删除。所以我真的需要一些帮助来完成我删除标记的目标,一次删除一个。
下面的代码
编辑
var map
var infowindow;
var markers = [];
function initialize() {
var NY = new google.maps.LatLng(40.739112, -73.785848);
map = new google.maps.Map(
document.getElementById('map-canvas'), {
center: NY,
zoom: 16,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
google.maps.event.addListener(map, 'click', function (event) {
addMarker(event.latLng);
});
}
function addMarker(location) {
var marker = new google.maps.Marker({
position: location,
map: map
});
markers.push(marker);
var delform = marker.getPosition() + '<br />' + '<form onsubmit="processdel(this,marker); return false" action="#">' + ' <input type="submit" id="delid" value="Delete" />' + '<\/form>';
infowindow = new google.maps.InfoWindow({
content: delform,
size: new google.maps.Size(50, 50)
});
google.maps.event.addListener(marker, 'rightclick', function (event) {
infowindow.open(map, marker);
// marker.setMap(null); This is the line that was NOT supposed to be in the code.
});
}
function processdel(form, marker) {
infowindow.close();
marker.setMap(null);
marker = null;
}
initialize();
【问题讨论】:
-
看起来你没有“更新”你的 jsfiddle。 code there 很无聊。这可能就是你想要的updated jsfiddle
-
感谢您的提醒。我是 jsFiddle 的新手,不知道更新的要求。此外,正如您在编辑后的问题中看到的那样,更新后我得到了新的坏结果。
-
它不会被删除。您只是通过使用表单提交来刷新页面。因此,您的地图会再次加载而没有任何标记。
-
@MrUpsidown 这令人惊讶,但您可能是对的。无论如何,我想我可能已经找到了答案here,并且它包含了它自己的 jsFiddle 演示。显然我必须构建一个包含所有标记的
markers对象。哦,顺便说一句,我查看了您对问题的编辑,我只能看到看起来并不重要的格式更改。你有什么实质性的补充吗? -
不。我永远不会更改您的代码中的任何内容。这是你问题的一部分。我只是正确缩进它。您对实际上是一个数组的标记“对象”是正确的,但是您已经这样做了。我将在几秒钟内添加一个答案以进一步解释。
标签: javascript google-maps-api-3