При клике по ссылке в балуне Яндекс Карт не происходит перехода

Есть код https://codepen.io/sochi-russia/pen/yLmWVqW

var objectsCSV = '\n51.5406;46.0086;"от 4909р.";"в Саратов ";"RTW"\n51.83;107.606;"от 10600р.";"в Улан-Удэ ";"UUD"\n59.5339;30.1850;"от 3221р.";"в Санкт-Петербург ";"LED";\n55.7887;49.1221;"от 3934р.";"в Казань ";"KZN";\n43.5992;39.7257;"от 4286р.";"в Сочи";"AER";\n43.1056;131.874;"от 18100р.";"во Владивосток";"VVO"\n53.9;27.56;"от 6170р.";"в Минск ";"MSQ";\n55.04;82.9346;"от 8159р.";"в Новосибирск ";"OVB";\n54.99;73.36;"от 7009р.";"в Омск ";"OMS";\n55.154;61.4291;"от 4909р.";"в Челябинск ";"CEK";\n54.7065;20.511;"от 4009р.";"в Калининград ";"KGD";\n48.7194;44.5018;"от 3609р.";"в Волгоград ";"VOG";';
var objects = objectsCSV.split('\n');

ymaps.ready(init);

function init() {
    var myMap = new ymaps.Map("map", {
            center: [53.03,67.37],
            zoom: 4}
      );

    // Получаем текущую дату в формате YYYY-MM-DD
    var currentDate = new Date().toISOString().split('T')[0];

    for (var i = 0; i < objects.length; i++) {
        var object = objects[i].split(';');
        object[4] = object[4]?.replaceAll('"', '');

        var placemark = new ymaps.Placemark([object[0], object[1]], {
            balloonContent: object[3] + 
            '<br><a class="but" href="/flights/?origin_iata=MOW&destination_iata=' + object[4] + 
            '&depart_date=' + currentDate + '&with_request=true"" id="block">Поиск билета</a>',
            iconCaption: object[2]
        }, {
            preset: 'islands#violetDotIconWithCaption'
        });

        placemark.balloon.events.add('click', function(e) {
            e.get('target').balloon.close();
        });

        myMap.geoObjects.add(placemark);
    }
}

Не кликается кнопка "Поиск билета" в мобильной версии Яндекс Карт, при клике закрывается окно, в ПК версии переход по ссылке происходит. Подскажите как исправить ситуацию?


Ответы (1 шт):

Автор решения: YaSupport

В вашем случае мешает слушатель клика на балуне, который при тапе закрывает его раньше срабатывания ссылки. Если не хотите делать отдельную кнопку для закрытия балуна, можно делать это кликом по самой карте:

myMap.events.add('click', function(e) {
  e.get('target').balloon.close();
});
→ Ссылка