【问题标题】:How do you use an event listener in markers whose event toggles between two functions when listened to?您如何在标记中使用事件侦听器,其事件在侦听时在两个函数之间切换?
【发布时间】:2016-10-31 17:14:17
【问题描述】:

我有这段代码运行良好:

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

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

【问题讨论】:

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


    【解决方案1】:

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

    ...
    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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-04
      • 1970-01-01
      • 2020-09-06
      • 1970-01-01
      • 1970-01-01
      • 2013-06-27
      • 1970-01-01
      相关资源
      最近更新 更多