2011-05-26 123 views
2

我想要的功能,我可以在標記上的鼠標懸停和鼠標移出,並彈出infowindow並自動關閉它。然後,當用戶點擊標記時,我會禁用該標記的鼠標以顯示infowindow,直到用戶手動關閉該標記爲止。當用戶單擊infowindow的關閉時,我想將mouseout添加回標記。谷歌地圖和事件

我有這樣的代碼:

google.maps.event.addListener(marker, 'mouseover', function() { 
    infowindow.open(map, marker); 
}); 
google.maps.event.addListener(marker, 'mouseout', function() { 
    //setTimeout(function() { infowindow.close(); }, 3000); 
    infowindow.close(map, marker); 
}); 
google.maps.event.addListener(marker, 'click', function() { 
    infowindow.open(map, marker);    
    google.maps.event.clearListeners(marker, 'mouseout'); 
}); 

我試圖用「click」事件禁用「鼠標移開」。以上作品。現在我想在使用下面的'closeclick'關閉infowindow後添加'mouseout'事件。

google.maps.event.addListener(infowindow, 'closeclick', function() { 
    //google.maps.event.addListener(marker, 'mouseout', ""); 
}); 

我不知道該怎麼做。有人能指引我朝着正確的方向嗎?

回答

0

我想通了這一點,我想我會分享:

function attachData(marker, number) { 
    //snipped code that adds the events that are removed in closeMarker 
    google.maps.event.addListener(infowindow, 'closeclick', function() { 
      closeMarker(marker, number); 
    }); 
} 

的closeMarker功能清除所有的時事,並通過調用attachData功能將他們帶回。

function closeMarker(marker, number) { 
     google.maps.event.clearListeners(marker, 'mouseover'); 
     google.maps.event.clearListeners(marker, 'mouseout'); 
     google.maps.event.clearListeners(marker, 'click'); 
     google.maps.event.clearListeners(marker, 'closeclick'); 
     attachData(marker, number); 
    }