Javascript 谷歌地图API-有没有一种方法可以在下一次单击时反转侦听器?
我有一个功能,允许我点击一个标记,它为我提供了一个信息框和另一个标记Javascript 谷歌地图API-有没有一种方法可以在下一次单击时反转侦听器?,javascript,html,google-maps,listener,Javascript,Html,Google Maps,Listener,我有一个功能,允许我点击一个标记,它为我提供了一个信息框和另一个标记 function addMarker(props){ var marker = new google.maps.Marker({ position:props.coords, map: map, icon:props.iconImage });
function addMarker(props){
var marker = new google.maps.Marker({
position:props.coords,
map: map,
icon:props.iconImage
});
if(props.content){
var infoWindow = new google.maps.InfoWindow({
content:props.content
});
marker.addListener('click', function () {
infoWindow.open(map, marker);
});
marker.addListener('click', function () {
addMarker({
coords:{lat: 59.896874,lng: -5.125914},
iconImage:'pointer12s.png',
content:'<h1>destination</h1>'
});
});
}
}
但我不确定是将其放入同一个函数还是使用不同的函数?一个选项是保留对添加的标记的引用。如果尚未添加该标记,请创建该标记,如果该标记已存在,请隐藏它并调用setMapnull,然后将其设置为null。删除标记时关闭信息窗口
var addedMarker;
function addMarker(props) {
var marker = new google.maps.Marker({
position: props.coords,
map: map,
icon: props.iconImage
});
if (props.content) {
var infoWindow = new google.maps.InfoWindow({
content: props.content
});
marker.infowindow = infoWindow;
marker.addListener('click', function() {
infoWindow.open(map, marker);
});
marker.addListener('click', function() {
if (!addedMarker || !addedMarker.setMap) {
addedMarker = addMarker({
coords: {
lat: 59.896874,
lng: -5.125914
},
// iconImage: 'pointer12s.png',
content: '<h1>destination</h1>'
});
} else {
this.infowindow.close();
addedMarker.setMap(null);
addedMarker = null;
}
});
}
return marker;
}
简单标记
var addedMarker;
function addMarker(props) {
var marker = new google.maps.Marker({
position: props.coords,
map: map,
icon: props.iconImage
});
if (props.content) {
var infoWindow = new google.maps.InfoWindow({
content: props.content
});
marker.infowindow = infoWindow;
marker.addListener('click', function() {
infoWindow.open(map, marker);
});
marker.addListener('click', function() {
if (!addedMarker || !addedMarker.setMap) {
addedMarker = addMarker({
coords: {
lat: 59.896874,
lng: -5.125914
},
// iconImage: 'pointer12s.png',
content: '<h1>destination</h1>'
});
} else {
this.infowindow.close();
addedMarker.setMap(null);
addedMarker = null;
}
});
}
return marker;
}