исчезновение линий при наведении на синхронизированную диаграмму в старшей диаграмме - PullRequest
0 голосов
/ 29 мая 2019

У меня синхронизированная старшая диаграмма с двумя разными контейнерами. Я использовал скрипт для синхронизации графиков. Синхронизация работает отлично. Мой первый график имеет 3 линии, а второй - только 1.

При наведении первого графика третья строка исчезает. Когда я отключить скрипт для синхронизации, он отлично работает.

Это мой скрипт для синхронизации.

$('#container, #container2').bind('mousemove touchmove touchstart', function(e) {
        var chart,
        points,
        i,
        secSeriesIndex = 1;

        for (i = 0; i < Highcharts.charts.length; i++) {
            chart = Highcharts.charts[i];
            e = chart.pointer.normalize(e); // Find coordinates within the chart
            points = [chart.series[0].searchPoint(e, true), chart.series[1].searchPoint(e, true)]; // Get the hovered point

            if (points[0] && points[1]) {
                if (!points[0].series.visible) {
                    points.shift();
                    secSeriesIndex = 0;
                }
                if (!points[secSeriesIndex].series.visible) {
                    points.splice(secSeriesIndex,1);
                }
                if (points.length) {
                    chart.tooltip.refresh(points); // Show the tooltip
                    chart.xAxis[0].drawCrosshair(e, points[0]); // Show the crosshair
                }
            }
        }
  });

Это ссылка jsfiddle для того же.

Может ли кто-нибудь помочь мне с этим?

1 Ответ

1 голос
/ 29 мая 2019

В массив points необходимо добавить все наведенные точки, а не только первые две:

for (i = 0; i < Highcharts.charts.length; i++) {
    chart = Highcharts.charts[i];
    e = chart.pointer.normalize(e); // Find coordinates within the chart    
    points = [];

    chart.series.forEach(function(s) {
        points.push(s.searchPoint(e, true));
    });

    ...
}

Демо: https://jsfiddle.net/BlackLabel/goxm5q3e/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...