如何在标记中使用事件侦听器,其事件在侦听时会在两个函数之间切换?
How do you use an event listener in markers whose event toggles between two functions when listened to?
我有这段代码运行良好:
marker.addListener('click', function(){
showInfo(marker, content);
});
marker.addListener('dblclick', function(){
hideInfo();
});
我正在使用两个事件监听器,一个监听“click”,另一个监听“dblclick”。但是,我只想使用一个事件侦听器来侦听“点击”并获得相同的结果。如何仅使用一个事件“点击”在 showInfo()
和 hideInfo()
函数之间切换?
您可以使用全局变量来确定信息是可见还是隐藏。
...
var isInfoVisible;
...
然后
marker.addListener('click', function(){
if (isInfoVisible){
isInfoVisible = false;
hideInfo();
} else {
isInfoVisible = true;
showInfo(marker, content);
}
});
或:
如果您使用信息窗口,您可以检查它是否附加到地图上。
marker.addListener('click', function(){
if (infowindow.map != null){
infowindow.close();
} else {
infowindow.setContent(content);
infowindow.open(map, marker);
}
});
我有这段代码运行良好:
marker.addListener('click', function(){
showInfo(marker, content);
});
marker.addListener('dblclick', function(){
hideInfo();
});
我正在使用两个事件监听器,一个监听“click”,另一个监听“dblclick”。但是,我只想使用一个事件侦听器来侦听“点击”并获得相同的结果。如何仅使用一个事件“点击”在 showInfo()
和 hideInfo()
函数之间切换?
您可以使用全局变量来确定信息是可见还是隐藏。
...
var isInfoVisible;
...
然后
marker.addListener('click', function(){
if (isInfoVisible){
isInfoVisible = false;
hideInfo();
} else {
isInfoVisible = true;
showInfo(marker, content);
}
});
或:
如果您使用信息窗口,您可以检查它是否附加到地图上。
marker.addListener('click', function(){
if (infowindow.map != null){
infowindow.close();
} else {
infowindow.setContent(content);
infowindow.open(map, marker);
}
});