Google maps 谷歌地图事件监听器
我在事件侦听器中遇到问题。我在“地图”中创建了“单击”事件侦听器,每次用户单击地图时,都会创建一个新的标记。每个标记都有自己的信息框,其中包含删除标记的链接 问题是,当我单击信息框内的“删除”链接时,地图的“单击”事件总是会触发。标记已成功删除,但会创建一个新标记。我怎样才能解决这个问题?我只想拿掉那个记号笔 代码如下:Google maps 谷歌地图事件监听器,google-maps,google-maps-api-3,Google Maps,Google Maps Api 3,我在事件侦听器中遇到问题。我在“地图”中创建了“单击”事件侦听器,每次用户单击地图时,都会创建一个新的标记。每个标记都有自己的信息框,其中包含删除标记的链接 问题是,当我单击信息框内的“删除”链接时,地图的“单击”事件总是会触发。标记已成功删除,但会创建一个新标记。我怎样才能解决这个问题?我只想拿掉那个记号笔 代码如下: html{高度:100%} 正文{高度:100%;边距:0;填充:0} #地图画布{高度:100%} var映射; var标记=[]; var infowindows=[];
html{高度:100%}
正文{高度:100%;边距:0;填充:0}
#地图画布{高度:100%}
var映射;
var标记=[];
var infowindows=[];
var marker_cnt=0;
var marker_icons={'mall':'mall.png','train_station':'train.png','park':'park.png','bank':'bank.png'};
var信息窗口;
变量位置=[
[Central',mall',1.289261246850713103.84759068489075,'Central mall'],
[Dhoby Ghaut','train_station',1.298550049775337103.84589552879333,'Dhoby Ghaut',
['Outram站','train_站',1.2812595487889478,103.83896470069885,'Outram站',
[“市政厅”,“银行”,1.2932084559435784,103.85241866111755,“市政厅车站”],
[“小印度站”,“火车站”,1.3071308997488136103.8497149943054,“小印度站”],
['Emily Park','Park',1.3071308997488136103.8497149943054,'Emily Park']
];
变量myOptions={
内容:“正在加载…”
,boxStyle:{
背景:“ccc”
,不透明度:1
,宽度:“280px”
,高度:“100px”
,填充:“10px”
}
,closeBoxMargin:“10px 2px 2px 2px”
,closeBoxURL:“http://www.google.com/intl/en_us/mapfiles/close.gif"
,窗格:“浮动窗格”
,enableEventPropagation:false
};
var infowindow=新信息框(myOptions);
google.maps.event.addListener(信息窗口,'click',函数(){
控制台日志('aaaa');
});
函数初始化()
{
var mylatng=new google.maps.LatLng(1.28928269902386103.84409308433533);
变量myOptions={
缩放:16,
中心:myLatlng,
mapTypeId:google.maps.mapTypeId.ROADMAP,
disableDefaultUI:true
}
map=new google.maps.map(document.getElementById(“map_canvas”),myOptions);
google.maps.event.addListener(映射,'click',函数(事件){
placeMarker(event.latLng、event.getPosition);
});
loadMarkers();
}
函数loadMarkers()
{
对于(变量i=0;i ”+位置
});
标记器。推(标记器);
google.maps.event.addListener(标记,'click',函数(){
setContent(this.html);
打开(地图,这个);
});
google.maps.event.addListener(标记,'dragend',function(){
var html_content='
'+this.position;
this.html=html\u内容;
setContent(this.html);
打开(地图,这个);
});
google.maps.event.addListener(标记,'dragstart',函数(){
信息窗口。关闭(地图,此);
});
}
函数removeMarker(索引)
{
标记[index].setMap(空);
关闭(地图,标记[索引]);
infowindows[index].close();
返回false;
}
html{
字体:12px Arial,Helvetica,无衬线;
颜色:#333;
填充:0;
保证金:0;
}
.列表菜单{
高度:300px;
}
Listul先生{
保证金:0.5px 0;
填充:0 0 2px 0;
列表样式类型:无;
宽度:185px;
}
李娜先生{
颜色:#333;
显示:块;
高度:16px;
填充:4px 0 4px 14px;
文字装饰:无;
字体大小:粗体;
背景色:#fff;
}
.列表菜单李a:悬停{
背景色:#666;
颜色:#fff;
}
将click事件作为参数传递给removeMarker()
谢谢你的回复。我已经解决了这个问题。我通过删除“onclick”并将javascript放到href
来修复它,谢谢!我试过了,但它只在移除标记时起作用。我还需要删除信息框。当我添加infobox.close()时,同样的问题也会出现。javascript:
URL通常是个坏主意。
marker = new google.maps.Marker({
map:map,
draggable:true,
animation: google.maps.Animation.DROP,
position: location,
html: '<a href="#" onclick="removeMarker('+ (markers.length) +',event)">\
delete marker</a> <br/> '+ location
});
function removeMarker(index,event)
{
try{event.cancelBubble=true;}//IE
catch(e){event.stopPropagation();}//others
markers[index].setMap(null);
infowindow.close(map, markers[index]);
return false;
}