Установка глобальных переменных в JS для триггера событий - Google Maps API - PullRequest
0 голосов
/ 12 декабря 2010

Я использую 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); так далее.. } * +1010 *

Как я могу глобально установить эту переменную?

1 Ответ

0 голосов
/ 16 декабря 2010

Чтобы сделать переменную глобальной, просто объявите ее вне определения любой функции.

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 работал, рассмотрите возможность размещения ссылки на сайт, который демонстрирует проблему.

...