如何在事件监听时在两个函数之间切换的标记中使用事件监听器

How do you use an event listener in markers whose event toggles between two functions when listened to?

本文关键字:事件 监听器 之间 两个 监听 函数      更新时间:2023-09-26

我有这段代码运行良好:

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);
    }       
});

或:

如果你使用infowindow,你可以检查它是否附在地图上。

marker.addListener('click', function(){
    if (infowindow.map != null){
        infowindow.close();
    } else {
        infowindow.setContent(content);
        infowindow.open(map, marker);
    }       
});
https://jsfiddle.net/oxh0gq5w/