К сожалению, решение для этого еще не найдено - текущее обходное решение состоит в том, чтобы просто заменить регулярные выражения серией вызовов Replace
(или другой требуемой операции).
Чтобы выделить один столбец при щелчке, сначала сделайте переключаемые столбцы:
series.columns.template.togglable = true;
Теперь, когда вы щелкаете столбец, он будет переключаться между его активными состояниями и состояниями по умолчанию, поэтому вам просто нужно создать активное состояние и определить его свойства. Вы уже делаете это с этими двумя строками кода:
var activeState = series.columns.template.states.create("active");
activeState.properties.fill = am4core.color("#E94F37");
И это все! Нет необходимости в хитовых событиях и т. П.
Если вы хотите, чтобы за раз выделялся только один столбец, тогда нам нужно событие попадания, мы просто сбросим каждый столбец, кроме того, который был нажат (независимо от того, были они активны или нет, не имеет значения) , series.columns
является шаблоном списка , поэтому у него есть метод each
, который позволяет перебирать все фактические столбцы (во многом как Array.forEach
):
series.columns.template.events.on("hit", function(event) {
series.columns.each(function(column) {
if (column !== event.target) {
column.setState("default");
column.isActive = false;
}
})
});
[1112 ] Вот демонстрация:
https://codepen.io/team/amcharts/pen/abd6da81e3bd7004f70eb6069a135219