【问题标题】:Setting Global Variables in JS on Event Trigger - Google Maps API在事件触发时在 JS 中设置全局变量 - Google Maps API
【发布时间】:2011-05-24 06:26:28
【问题描述】:

我正在使用 Google Maps API v3,需要根据当前缩放级别偏移标记。

我有一个全局变量 current_zoom_level,还有一个用于放大/缩小的事件监听器:

google.maps.event.addListener(map, 'zoom_changed', function() { current_zoom_level = map.getZoom(); 警报(current_zoom_level); });

我已经在初始化代码和计算偏移量的代码中尝试了这一点。警报显示正确的当前缩放级别,但是当我在 build_loan_markers()(我计算偏移量的地方)中访问它时,current_zoom_level 是未定义的。

函数 build_loan_markers () {
变量偏移量; 警报(current_zoom_level); 如果(!window.current_zoom_level){ window.current_zoom_level = 1; } 偏移量 = 1/(window.current_zoom_level^2); alert('zoom: ' + current_zoom_level + ' offset: ' + offset); 等等.. }

如何全局设置这个变量?

【问题讨论】:

  • 请格式化您帖子中的代码。

标签: google-maps-api-3 global-variables zooming event-listener


【解决方案1】:

要使变量成为全局变量,只需在任何函数定义之外声明它即可。

var current_zoom_level = 0;

function something() {
   // Add your listener here
}

function build_loan_markers() {
  alert(current_zoom_level);
}

您不需要以 window.current_zoom_level 的形式访问您的变量。从您的代码中不清楚两个 alert(current_zoom_level)s 中的哪一个在工作,请考虑发布一个指向演示该问题的网站的链接。

【讨论】:

  • 但是你不能用一个变量来做它的值将从另一个触发函数填充
猜你喜欢
  • 2018-08-05
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 2011-04-10
  • 1970-01-01
  • 1970-01-01
  • 2013-08-25
相关资源
最近更新 更多