2017-07-25 68 views
-1

我在地圖上點擊標記時出現問題,InfoWindow打開,但當我將鼠標懸停在另一標記上時,InfoWindow被點擊它被關閉。 現在,我必須在將鼠標懸停在另一個位置時關閉InfoWindow,只有當我點擊Marker關閉舊的InfoWindow才能打開新的InfoWindow時?如何在MouseOver另一個標記時關閉InfoWindow?谷歌地圖API

像這樣http://aqicn.org/here/

我的JavaScript

markers.forEach(function(diadiem) { 
        var marker = new google.maps.Marker({ 
        position: diadiem.position, 
        icon: icons[diadiem.type].icon, 
        map: map 
        }); 

        // Click marker 
        google.maps.event.addListener(marker, 'click', (function(marker) { 
         return function() { 
          infowindow.setContent('Ok click');    
          infowindow.open(map, marker); 
         } 
         })(marker)); 

        // Hover mouse 
        google.maps.event.addListener(marker, 'mouseover', (function(marker) { 
         return function() { 
          infowindow.setContent('OK hover'); 
          infowindow.open(map, marker); 
         } 
         })(marker)); 
}); 
+0

你想要的信息窗口關閉只有當點擊另一個標記?即一次打開一個信息窗口? –

+0

@JohnM正是!我想要這樣http://aqicn.org/here/ –

+0

該鏈接不是你問你的問題。標記不具有相同的onClick事件(onclick打開一種infoWindow,懸停打開一個較小的工具提示)。此外,它不是谷歌地圖。如果我的回答不符合您的要求,請重新提出您的問題。 –

回答

0

現在你只有一個信息窗口,這被重新定位,並得到每個懸停新的內容。
您也可以每次創建一個新的infowindow。 喜歡這個。

注意,這將產生雙打

// Hover mouse 
google.maps.event.addListener(marker, 'mouseover', (function(marker) { 
    return function() { 
    var infowindow = new google.maps.InfoWindow(); 
    infowindow.setContent('OK hover'); 
    infowindow.open(map, marker); 
    } 
})(marker)); 
0

我成功地解決了我的問題,我自己!

通過創建2個不同的信息窗口

var infowindow = new google.maps.InfoWindow(); 
var infowindow2 = new google.maps.InfoWindow(); 

markers.forEach(function(diadiem) { 
        var marker = new google.maps.Marker({ 
        position: diadiem.position, 
        icon: icons[diadiem.type].icon, 
        map: map 
        }); 

        // Click marker 
        google.maps.event.addListener(marker, 'click', (function(marker) { 
         return function() { 
          infowindow.setContent('Ok click');    
          infowindow.open(map, marker); 
          infowindow2.close(map, marker); 
         } 
         })(marker)); 

        // Hover mouse 
        google.maps.event.addListener(marker, 'mouseover', (function(marker) { 
         return function() { 
          infowindow2.setContent('OK hover'); 
          infowindow2.open(map, marker); 
         } 
         })(marker)); 
}); 
相關問題