Клуб 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 он просто его не видит... что я пропустил?:(


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

Спасибо!;)

А других способов нет, у меня тоже не срабатывает клик
не могу поймать событие клик на кнопке внутри текста метки http://joxi.ru/gmvzv9ZUx9ag6m
$('#pvz_map .map-adress-pvz').click(function(){
alert('ok');
$('input[name=address_pvz]').val($(this).data("adrpvz"));
});
Этим кодом пытаюсь поймать, но ничего не происходит.