在事件触发器上设置JS中的全局变量 - Google Maps API

时间:2010-12-12 15:22:01

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

我正在使用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未定义。

function build_loan_markers() {
        var offset;  警报(current_zoom_level);  如果(!window.current_zoom_level){   window.current_zoom_level = 1;  }  offset = 1 /(window.current_zoom_level ^ 2);  alert('zoom:'+ current_zoom_level +'offset:'+ offset);         等等.. }

如何全局设置此变量?

1 个答案:

答案 0 :(得分:0)

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

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中哪一个正在运行,请考虑发布指向演示此问题的网站的链接。