fix: Tooltip скрывается при mouseout/mouseleave - handlers после создания чарта

- Убраны IIFE и DOMContentLoaded обёртки
- Обработчики вешаются сразу после создания Chart
- Уникальные имена переменных canvas для каждой метрики
This commit is contained in:
mirivlad 2026-02-20 18:25:17 +00:00
parent e9cc71ddfe
commit e955eb84b1
1 changed files with 5 additions and 7 deletions

View File

@ -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 %}