Javascript 谷歌地图V3没有';无法删除事件侦听器

Javascript 谷歌地图V3没有';无法删除事件侦听器,javascript,google-maps,google-maps-api-3,listener,Javascript,Google Maps,Google Maps Api 3,Listener,我有一个谷歌地图API v3的问题。我试图在缩放更改时删除鼠标悬停侦听器 这是我的密码: $(document).ready(function() { var myOptions = { ... }; var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); function colormaps(map) { var new

我有一个谷歌地图API v3的问题。我试图在缩放更改时删除鼠标悬停侦听器

这是我的密码:

$(document).ready(function() {

    var myOptions = {
        ...
    };

    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    function colormaps(map) {
        var newmap = map;
        var piemonteCoords = [
            ...
        ];        
        var piemontePolygon = new google.maps.Polygon({
            ...
        });         
        piemontePolygon.setMap(newmap);
        google.maps.event.addListener(piemontePolygon, 'mouseover', function(event) {
            var prova = event;
            showInfo(prova, newmap, 'Italy');
        });

        google.maps.event.addListener(newmap, 'zoom_changed', function() {
            zoomLevel = map.getZoom();
            if (zoomLevel >= 6) {
                google.maps.event.clearListeners(newmap, 'mouseover');
            }
            else {
                ...
            }
        } //fine colormaps
        google.maps.event.addDomListener(window, 'load', colormaps(map));
    });

当缩放达到目标级别时,侦听器不会被删除。怎么了

您正在将侦听器添加到
对象,但您正在将其从
newmap
对象中清除,这可能是错误的(我不是该领域的专家,所以我不能确定)

试着像这样做:

google.maps.event.clearListeners(piemontePolygon, 'mouseover');

编辑:
如果上述代码失败,您可以使用另一种方法进行尝试


案例1(您也可以将事件类型作为第二个参数传递):


案例2:


+1案例2是一条路,是理解正在发生的事情的最明确的方式。谢谢大家的回答。。。第一个解决方案有效,第二个不起作用。遗憾的是,谷歌没有用(imo)更合理的方式来实现它-
google.maps.event.removeListener(obj,['event'],[optional callback])
——第二个和第三个参数是可选的,以获得更具体的信息
google.maps.event.clearInstanceListeners(piemontePolygon);
var listener1 = google.maps.event.addListener(piemontePolygon, 'mouseover', function(
    var prova = event;
    showInfo(prova, newmap, 'Italy')
});

google.maps.event.removeListener(listener1);