Клуб API Карт

не срабатывает .click в форме балуна

menshakov.artem
30 октября 2014, 17:41

проблема такая, в версии 2.0 событие .click 

 

myMap.events.add('click', function (e) {

            if (!myMap.balloon.isOpen()) {

                var coords = e.get('coords');

                myMap.balloon.open(coords, {

                    contentBody: ' <button type="submit" class="btn btn-success" id="save">Сохранить</button>'});

$('#save').click(function () {

myMap.balloon.close();

})

});

 

сработало бы и балун закрылся, а в 2.1 он просто его не видит... что я пропустил?:(


2 комментария
Подписаться на комментарии к посту
Добрый вечер.  В 2.1 макеты балунов стали асихнронными. Соответственно в момент вызова $('#save').click(function () { элемент save еще не был добавлен в DOM. В вашем случае будет правильно создаться собственный макет контента балуна и внутри переопределения метода build создать подписку на событие "click". Как в этом примере
https://tech.yandex.ru/maps/jsbox/2.1/placemark_balloon_layout
В вашем кейсе, подписки на события click будут накапливаться при каждом открытии балуна. То есть необходимо в переопределении метода clear производить отписку от события (unblind)

Спасибо!;)