Клуб API Карт

Вопрос по смене стиля метки

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

Не могу сделать смену стиля по нажатию такой кнопки -

input type=button value="Сменить стиль" onClick=smena()

 

function smena()

    {

placemark.setStyle(alarm1);

placemark.update();

  map.update();


   }

 

подскажите плиз .

8 комментариев
Александр Новиков
28 января 2016, 06:21

Приведенного кода маловато будет.

Не совсем понятно что такое у вас placemark и alarm1. Где эти переменные объявляются и как инициализируются.

Лучше сразу дать ссылку на страницу с проблемой.

P.S.: а бразуер нормально все это "переваривает". Не ругается случайно а ошибки JavaScript?

placemark - метка

alarm1 - стиль

smena() - функция

 

ошибки посмотрю,

вроде понимаю, что проблема с видимостью переменных и функции,

но и нет ясности как лучше организовать динамическую смену стиля метки.

функция "smena" на самом деле не нужнв =)

нужно добавлять свли стили в хранилище методом YMaps.Style.add

 

// Создает метку со стилем, который будет создан позже
var placemark = new YMaps.Placemark(map.getCenter(), {style: "user#bluePoint"});

// Создает стиль метки
var s = new YMaps.Style();
// ... тут ваши стили

// Добавляет стиль в хранилище
YMaps.Styles.add("user#bluePoint", s);

// Добавление метки на карту
map.addOverlay(placemark);

 

 

и менять методом setStyle

 

placemark.setStyle("other_style_id");

 

мне надо сменить стиль по нажатию кнопки

метод - placemark.setStyle("other_style_id");

тоже подойдет, но почему он не работает при

запуске отдельной функции smena() ?


 

но почему он не работает при

запуске отдельной функции smena() ?

вы могли напутать с областями видимости переменных в функции  smena 

чтобы сказать точнее нужно увидеть страницу где не работает

точно, внешняя функия не видит map,

как только карту(map) определить для полной

видимости ? 

если вывожу ее определение до

window.onload = function () {

то вообще перестает работать блин .


Спасибо, начитался книжек , разобрался.

и заработало.