2013-10-20 23 views
1

工作,我對這項工作,並表示在信息窗口中正確的文本但是,這些信息窗口的永遠不會消失,除非你按x「鼠標懸停」事件偵聽器。我希望它們在用戶移開鼠標後消失。以下是代碼。鼠標移開了infoWindow.close不會對谷歌地圖V3在JavaScript

謝謝!

iPark.makeMarker = function (lat, long, street, location, description) { 
    var myLatlng = new google.maps.LatLng(lat, long) 
    var marker = new google.maps.Marker({ 
    position: myLatlng, 
    title: 'Click to Zoom' 
    }); 
    marker.setMap(this.map) 

    google.maps.event.addListener(marker, 'click', function() { 
    iPark.map.setZoom(18); 
    iPark.map.setCenter(marker.getPosition()); 
    google.maps.event.addListener(marker, 'click', function() { 
     iPark.map.setZoom(13) 
     iPark.map.setCenter(37.7833, -122.4167) 
    }) 
    }); 

    google.maps.event.addListener(marker, 'mouseover', function() { 
    iPark.infoWindow(street).open(iPark.map, marker) 
    }); 
    google.maps.event.addListener(marker, 'mouseout', function() { 
    console.log("hello") 
    iPark.closeinfoWindow 
    }); 
} 

iPark.infoWindow = function(street){ 
    return new google.maps.InfoWindow({ 
    content: String(street) 
}) 

iPark.closeinfoWindow = InfoWindow.close() 

}; 
+0

你有小提琴,可以顯示問題嗎? – geocodezip

回答

0

這看起來不對。

google.maps.event.addListener(marker, 'mouseout', function() { 
    console.log("hello") 
    iPark.closeinfoWindow 
    }); 

這可能會更好地工作(沒有測試,以斷報道工作的 「鼠標移開」 功能):

google.maps.event.addListener(marker, 'mouseout', function() { 
    iPark.infoWindow(street).close(); 

    }); 
4

存儲信息窗口作爲標記的屬性:

google.maps.event.addListener(marker, 'mouseover', function() { 
    if(!this.get('iw'))this.set('iw',iPark.infoWindow(street)); 
    this.get('iw').open(iPark.map, this); 
    }); 

那麼您稍後可以訪問它:

google.maps.event.addListener(marker, 'mouseout', function() { 
    this.get('iw').close(); 
    }); 
+0

感謝您的幫助。其實,我是能夠使iPark.infoWindow一個全局變量,並且迫使舊的窗口消失時,我呼籲新標誌一個新的窗口,解決了這個問題。 – darkphantom500

+0

謝謝,Dr.Molle,這個整理出來給我。我在頁面上有很多標記,現在每個標記都可以引用它自己的infowindow,它現在可以關閉。 – Dawson

相關問題