diff --git a/client/src/components/gps/marker-html.ts b/client/src/components/gps/marker-html.ts index 84fee0c..d2b6cff 100644 --- a/client/src/components/gps/marker-html.ts +++ b/client/src/components/gps/marker-html.ts @@ -94,10 +94,14 @@ export function gpsMarkerHtml(marker: GpsMapMarker): string { } } - // data-* атрибута на корне НЕТ намеренно: делегированный обработчик ловит - // только кнопки с data-gps-action (список кластера, «Открыть задачу» в попапе), - // иначе клик по точке сразу вызывал onClick и глушил открытие попапа - return `
${body}${label}
`; + // Двойной путь клика: корень маркера несёт data-gps-action (проверенное + // capture-делегирование на контейнере карты) — срабатывает даже если + // placemark.events (ymaps) клик не доставляет. Маркеры с popup (точки + // трека) атрибут не получают — у них onClick нет. + const actionAttr = marker.onClick && !marker.popup + ? ` data-gps-action="open:${escapeHtml(String(marker.id))}"` + : ''; + return `${body}${label}`; } /**