我正试图让我隐藏的标记直到点击地图。
如果我删除了监听器,那么标记应该在哪里,并且一切正常,当我添加标记时,标记将永久消失。
我查看了谷歌api和几个网站(包括这个),我的室友甚至看了一眼,我似乎无法让它工作。
我的理解是,在这种情况下,“点击”是谷歌特定的事情,因为浏览器处理这样的事件略有不同,所以也许听众是问题。
非常感谢任何帮助。
var myCenter=new google.maps.LatLng(55.680313, 12.548468);
function initialize()
{
var mapProp = {
center:myCenter,
zoom:15,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);
google.maps.event.addListener(map, 'rightclick', function(event) {
var marker=new google.maps.Marker({
position:myCenter,
animation:google.maps.Animation.DROP
});
});
marker.setMap(map);
}
google.maps.event.addDomListener(window, 'load', initialize);
答案 0 :(得分:1)
我收到了一个javascript错误:
Uncaught ReferenceError: marker is not defined
在这一行:
marker.setMap(map);
变化:
google.maps.event.addListener(map, 'rightclick', function(event) {
var marker=new google.maps.Marker({
position:myCenter,
animation:google.maps.Animation.DROP
});
});
marker.setMap(map);
要:
google.maps.event.addListener(map, 'rightclick', function(event) {
var marker=new google.maps.Marker({
position:myCenter,
animation:google.maps.Animation.DROP
});
marker.setMap(map);
});
或者:
google.maps.event.addListener(map, 'rightclick', function(event) {
var marker=new google.maps.Marker({
map: map,
position:myCenter,
animation:google.maps.Animation.DROP
});
});
答案 1 :(得分:0)
为什么不将事件绑定到地图容器?
document.getElementById("googleMap").onmousedown = function(e) {
if ((e.which && e.which == 3) || (e.button && e.button == 2)) {
var marker=new google.maps.Marker({
position:myCenter,
animation:google.maps.Animation.DROP
});
document.getElementById("googleMap").onmousedown = undefined;
}
}
我们将onclick
设置为undefined
,以便在首次点击后停用创建标记。
UPD:抱歉。注意,您想要绑定右键单击。更新了代码。