Клуб API Карт

Своя кнопка на карте, которая открывает блок

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

Подскажите, как правильно реализовать данную штуку. 

Создал кнопку, которая должна открывать блок div, но вот незадача. Все работает, но при нажатию на кнопку, она дублируется и так до бесконечности, при этом если нажать на первую кнопку, то все работает. и как можно загнать в блок div на карте данные из smarty

 

uttonLayout = ymaps.templateLayoutFactory.createClass(

            "<button class='hideBtn   {% if state.selected %}my-button-selected{% endif %}' >" +

                "{{data.content}}" +

                "</button>"+

"<div class='hideCont'>" +

 "454545454" +

"</div>" , 

function(){ 

firstButton = ('.hideBtn');

 $(firstButton).click(function(){ 

 $(this).toggleClass('close').siblings('.hideCont').slideToggle('normal'); 

 var hideBtn=$(firstButton).index($(this)),isShow=$(this).attr('class'); 

 return false; 

 }); 

 }

 

 

 ),

 

            

        button = new ymaps.control.Button({

            data: {

                content: "текст"

            },

            options: {

                layout: ButtonLayout

            }

        });

 

myMap.controls.add(button, {float: 'left'});

 

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

 

"

" , 

function(){ 

Конкретно в этом месте вставляя функцию после строки шаблона вы какого эффекта ожидаете?

 

Игорь Воробьёв
27 января 2016, 23:05

По нажатию на кнопку , показ блока .hideCont.

Или это совсем не туда?

Это совсем не то и совсем не туда.

Метод createClass может принимать объект вторым параметром, но не функцию.

Кнопка это кнопка, зачем в нее засовывать еще какой-то див?

Игорь Воробьёв
27 января 2016, 23:05

Хотел сделать по аналогии

https://tech.yandex.ru/maps/jsbox/2.1/list_box_layout

только вместо списка у меня блок

 

Вот нашел видимо то что мне нужно https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/control.ListBox-docpage/