From e955eb84b1459d923979233cbe34c75c4a4901a8 Mon Sep 17 00:00:00 2001 From: mirivlad Date: Fri, 20 Feb 2026 18:25:17 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20Tooltip=20=D1=81=D0=BA=D1=80=D1=8B=D0=B2?= =?UTF-8?q?=D0=B0=D0=B5=D1=82=D1=81=D1=8F=20=D0=BF=D1=80=D0=B8=20mouseout/?= =?UTF-8?q?mouseleave=20-=20handlers=20=D0=BF=D0=BE=D1=81=D0=BB=D0=B5=20?= =?UTF-8?q?=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8=D1=8F=20=D1=87=D0=B0?= =?UTF-8?q?=D1=80=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Убраны IIFE и DOMContentLoaded обёртки - Обработчики вешаются сразу после создания Chart - Уникальные имена переменных canvas для каждой метрики --- templates/servers/detail.twig | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/templates/servers/detail.twig b/templates/servers/detail.twig index 4d58eeb..9728b88 100755 --- a/templates/servers/detail.twig +++ b/templates/servers/detail.twig @@ -606,11 +606,9 @@ const chart{{ metricName|replace({'-': '_', '.': '_'}) }} = new Chart(ctx{{ metr }); // Скрывать tooltip при уходе курсора с canvas в любую сторону -(function() { - var canvas = document.getElementById('chart-{{ metricName }}'); - if (!canvas) return; - - canvas.addEventListener('mouseout', function() { +var canvas{{ metricName|replace({'-': '_', '.': '_'}) }} = document.getElementById('chart-{{ metricName }}'); +if (canvas{{ metricName|replace({'-': '_', '.': '_'}) }}) { + canvas{{ metricName|replace({'-': '_', '.': '_'}) }}.addEventListener('mouseout', function() { var tooltipEl = document.getElementById('chartjs-tooltip-{{ server.id }}-{{ metricName }}'); if (tooltipEl) { tooltipEl.style.visibility = 'hidden'; @@ -618,14 +616,14 @@ const chart{{ metricName|replace({'-': '_', '.': '_'}) }} = new Chart(ctx{{ metr } }); - canvas.addEventListener('mouseleave', function() { + canvas{{ metricName|replace({'-': '_', '.': '_'}) }}.addEventListener('mouseleave', function() { var tooltipEl = document.getElementById('chartjs-tooltip-{{ server.id }}-{{ metricName }}'); if (tooltipEl) { tooltipEl.style.visibility = 'hidden'; tooltipEl.style.opacity = '0'; } }); -})(); +} {% endif %} {% endfor %}