javascript - Google Maps V3 不会删除事件监听器

标签 javascript google-maps google-maps-api-3 listener

我对 Google Maps 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));
    });

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

最佳答案

你正在向 piemontePolygon 对象添加监听器,但是你正在从 newmap 对象中清除它,这可能是错误的(我不是那个领域的专家所以我不能确定)。

尝试这样做:

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


编辑:
根据docs如果上述代码失败,您可以尝试另一种方法。


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

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);

关于javascript - Google Maps V3 不会删除事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22333216/

相关文章:

google-maps-api-3 - Google Map API V3 仅在长时间对焦时缩放

jquery - 使用 jquery gmap3 和 autoFit 设置最大缩放级别

javascript - <a> 来自签名模板网页表单字段的 href 信息未按预期工作

javascript - ReadyState 没有更改为 4

javascript - vue导入失败 'marker-animate-unobtrusive'

android - 带有 viewpager 的谷歌地图

javascript - 基于月 View 的全日历自定义 View

javascript - 点击事件在 D3.js 中不起作用

javascript - Google map API 与库

google-maps - 添加自定义谷歌地图标记/别针(颜色)