2013-10-20 24 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

相关问题