我对 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/