Как изменить цвет одной точки на клике в Highcharts - PullRequest
0 голосов
/ 14 сентября 2018

Я пытаюсь изменить цвет точек рассеяния, по одному за раз.У меня есть код ниже, который работает, но я не уверен, как изменить цвет назад , когда вы нажимаете на вторую точку.

Например, я хотел бы, чтобы это работалопоэтому, если все точки являются желтыми по умолчанию и вы щелкаете точку А, только точка А становится черной.Затем, когда вы щелкаете точку B, точка B становится черной, а точка A снова становится желтой.

plotOptions: {
    series: {
        point: {
            events: {
                click: function() {
                    var thisPoint = this.options;
                    thisPoint.color = 'black';
                    this.update(thisPoint, true);
                }
            }
        }
    }
},

1 Ответ

0 голосов
/ 15 сентября 2018

Вы можете сохранить переменную, содержащую последнюю нажатую точку, например (во внешней области видимости):

let previousPoint;

А затем в вашем событии клика:

plotOptions: {
    series: {
        point: {
            events: {
                click: function() {
                    // If we have a previous point, reset its color
                    if(previousPoint)
                        previousPoint.update({color: previousPoint.originalColor});
                    // Set this points color to black
                    this.update({color: 'black', originalColor: this.color});
                    // Make it our previous point
                    previousPoint = this;
                }
            }
        }
    }
}

См. эту демонстрацию JSFiddle ее в использовании.

Если вы не хотите загромождать Point дополнительной переменной (originalColor), вы также можете поместить previousColor во внешнюю область видимости вместе с previousPoint.

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