HighCharts - отключить указатель мыши при выборе точки - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть следующие две диаграммы:

enter image description here

Линейный график настроен так:

highcharts = Highcharts;
  chartOptions = {
    chart: {
       type: "line"
       },
    credits: {
      enabled: false
    },
    title: {
      enabled: true,
      text: "Reach +1/" + this.xAxis.name,
      verticalAlign: "top",
      align: "left"
    },
    tooltip: {
      formatter: function (data) {
          return data.chart.userOptions.xAxis.title.text + ": " + this.x.toFixed(4) + "<br/>" +
              "Reach: " + this.y.toFixed(4);
      }
  },
    xAxis: {
      title: {
        text: this.xAxis.name
      },
    },
    yAxis: {
       title: {
          text: "Reach"
       }
    },
    series: [
      {
        name: this.xAxis.name,
        data: null,
        allowPointSelect: true,
        point: {
          events: {
            click(event) {
              const point = this;
              console.log(point.selected);
              const selected = (point.selected === true) ? false : true;
              point.series.points.forEach(p => {
                p.update({
                  marker: {
                    enabled: false
                  }
                }, false);
              });
              if (selected === false) {
                point.update({
                  marker: {
                    enabled: false
                  }
                });
              } else {
                point.update({
                marker: {
                  enabled: true
                }
              });
              }
            },
            mouseOver: function(event)  {
              this.filterOptimizationResults(event.target.x, event.target.y);
            }.bind(this)
          }
        }
      }
      ]
    };

При наведении в любой точке запускается функция обновления диаграммы p ie справа.

На линейном графике я также могу щелкнуть точку, чтобы сфокусироваться на ней.

Я пытаюсь сделать так, чтобы при нажатии на любую точку на линейном графике отключалась функция MouseOver, поэтому график p ie не обновлялся до тех пор, пока я не отменил выбор выбранной точки.

Есть предложения?

1 Ответ

1 голос
/ 21 февраля 2020

Вы можете условно запустить некоторый код в функции mouseOver, например:

series: [{
  ...,
  point: {
    events: {
      mouseOver: function(){
        if (!this.series.points.filter((p) => p.selected).length) {

          // do something
        }
      }
    }
  }
}]

Демонстрационная версия: http://jsfiddle.net/BlackLabel/6m4e8x0y/4886/

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