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

时间:2016-06-29 06:39:54

标签: google-maps-api-3 javascript-events google-maps-markers

我有这段代码运作良好:

marker.addListener('click', function(){
    showInfo(marker, content);
});
marker.addListener('dblclick', function(){
    hideInfo();
});

我正在使用两个事件侦听器,一个侦听'click'而另一个侦听'dblclick'。但是,我只想使用一个侦听“click”并获得相同结果的事件侦听器。如何只使用一个“click”事件在showInfo()和hideInfo()函数之间切换?

1 个答案:

答案 0 :(得分:1)

您可以使用全局变量来确定信息是可见还是隐藏。

...
var isInfoVisible;
...

然后

marker.addListener('click', function(){
    if (isInfoVisible){
        isInfoVisible = false;
        hideInfo();
    } else {
        isInfoVisible = true;
        showInfo(marker, content);
    }       
});

OR:

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

marker.addListener('click', function(){
    if (infowindow.map != null){
        infowindow.close();
    } else {
        infowindow.setContent(content);
        infowindow.open(map, marker);
    }       
});

https://jsfiddle.net/oxh0gq5w/