Javascript 单击标记并使“信息”窗口可见时,会触发“更改”事件。我怎样才能使它禁用?

Javascript 单击标记并使“信息”窗口可见时,会触发“更改”事件。我怎样才能使它禁用?,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我有一个谷歌地图,它可以刷新边界更改事件的标记数据。点击标记,我会打开一个信息窗口。现在,如果一个标记位于地图的拐角处,它会稍微移动一个地图,使弹出窗口适合地图视图 现在,我的bounds_changed事件再次被触发,它将用新数据再次绑定所有标记。所以这不是一个非常流畅的用户体验。我如何解决这个问题 提前感谢。理论解决方案:当bounds\u发生更改时,您无需执行任何操作 实际解决办法: 1) 您必须addlistener到bounds\u changed事件并忽略该事件。您这样做的方式是:

我有一个谷歌地图,它可以刷新边界更改事件的标记数据。点击标记,我会打开一个信息窗口。现在,如果一个标记位于地图的拐角处,它会稍微移动一个地图,使弹出窗口适合地图视图

现在,我的bounds_changed事件再次被触发,它将用新数据再次绑定所有标记。所以这不是一个非常流畅的用户体验。我如何解决这个问题


提前感谢。

理论解决方案:当
bounds\u发生更改时,您无需执行任何操作

实际解决办法:

1) 您必须
addlistener
bounds\u changed
事件并忽略该事件。您这样做的方式是:

var ignore = false; // this var is global;
currentBoundsListener = google.maps.event.addListener(map, 'bounds_changed', function () {
if(ignore) {
   ignore = false;
   return;
}

// Whatever.
});
2) 默认情况下,
ignore
变量设置为
false
,当显示
infowindow
时,当用户单击标记时,需要将该变量设置为
true

   google.maps.event.addListener(marker, 'click', (function(marker, i) {
                ignore = true;
                })(marker, i)); //end add marker listener

(一)
2)

为什么需要更改?请复制与您的问题相关的所有代码,因为数据太大,无法首先加载,因此当我们移动地图或缩小或放大,位置发生变化时,我们需要刷新列表。