【问题标题】:Google maps get_bounds event triggered multiple times谷歌地图get_bounds事件多次触发
【发布时间】:2010-09-29 06:33:49
【问题描述】:

我正在使用 V3 的 Google 地图 javascript api 来引入更多标记,因为地图边界发生了变化。问题是,当我拖动地图一段时间然后结束拖动时,会立即触发大量事件。拖动地图时,他们似乎在排队。

有什么方法可以添加一个计时器来停止这种情况,还是我必须使用 zoom_changed 和 dragend 事件作为解决方法?

这里是相关代码:

google.maps.event.addListener(map, 'bounds_changed', function() {
  var bounds_url = map.getBounds().toUrlValue();
  $.ajax({
    //... 
  });
});

【问题讨论】:

  • 我遇到了同样的问题并使用了 zoom_changed 和 drageng​​span>

标签: javascript google-maps


【解决方案1】:

添加一个超时,在事件触发 500 毫秒后运行您的代码,每次事件触发都会清除超时并创建一个新的。

google.maps.event.addListener(map, 'bounds_changed', (function () {
    var timer;
    return function() {
        clearTimeout(timer);
        timer = setTimeout(function() {
            // here goes an ajax call
        }, 500);
    }
}()));

【讨论】:

    【解决方案2】:

    这是已知的错误,谷歌团队建议使用:

    google.maps.event.addListener(map, 'idle', function() { });

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-16
      • 2011-01-03
      • 2015-02-06
      • 1970-01-01
      • 2015-07-13
      • 1970-01-01
      • 2011-09-17
      相关资源
      最近更新 更多