2016-06-29 202 views
-1

我有這部分代碼效果很好:如何在標記的事件偵聽器中使用事件偵聽器,其事件在偵聽時在兩個函數之間切換?

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

我用兩個事件偵聽器,一個聽「點擊」和其他聽「DBLCLICK」。不過,我只想使用一個偵聽'click'並獲得相同結果的事件偵聽器。如何通過只使用一個事件'點擊'來在showInfo()和hideInfo()函數之間切換?

回答

1

您可以使用全局變量來確定信息是可見的還是隱藏的。

... 
var isInfoVisible; 
... 

然後

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

OR:

如果你使用的信息窗口,你可以檢查它是否連接到地圖

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

https://jsfiddle.net/oxh0gq5w/

+0

感謝很多的信息。 – NdalilaTony