Клуб API Карт

Переменная не видится внутри функции

Пост в архиве.

Столкнулся с интересной проблемой: необходимо менять тип карты при нажатии кнопки вне ее. Создал карту и повесил на кнопку обработчик. Но переменная mymap внутри ф-ции обработчика "видится", но ее опции изменить не удается (тип не меняется).

 

Пример кода (в общих чертах):

 

// Создание карты и настройка ее параметров
var mymap = new ymaps.Map("YMapsID-" + options.map_id,...)


// здесь тип карты меняется нормально.

mymap.setType('yandex#publicMap');

 

// Обработчик для кнопки геокодирования в соотв. поле формы редактирования
$(map_options.addr_id + '.form-submit').click(function() {

 

// здесь переменная видится при помощи сonsole.log(), но тип карты уже не меняется

console.log(mymap);
mymap.setType('yandex#publicMap');

...

});

 

Что мне нужно поменять, чтобы тип карты менялся и внутри функции?

 

Заранее благодарен за ответ.

4 комментария

объявить переменную глобально?

вот именно этот код и работает

Покажите более полный вариант.

Разобрался: у меня в коде вместо

var mymap = new ymaps.Map("YMapsID-" + options.map_id,...)

было написано:

mymap = new ymaps.Map("YMapsID-" + options.map_id,...)

а когда переносил код сюда, на это не обратил внимание.

Bсправил и все заработало.

Разобрался: у меня в коде вместо

var mymap = new ymaps.Map("YMapsID-" + options.map_id,...)

было написано:

mymap = new ymaps.Map("YMapsID-" + options.map_id,...)

а когда переносил код сюда, на это не обратил внимание.

Bсправил и все заработало.