Javascript 在多个Highcharts树状图上选择点

Javascript 在多个Highcharts树状图上选择点,javascript,highcharts,treemap,Javascript,Highcharts,Treemap,Aim:我有两个相同的Highcharts树状图,如果我从一个图表中选择一个点,我还想向具有相同id/相同位置的第二个图表点发送一个select事件 进步: 我遵循这些解决同样问题的方法,只针对线图,然后采用了树图的提琴。您可以在下面找到它: $(function () { var prevPid = 0; var chart = { plotOptions: { series: { allowPointSe

Aim:我有两个相同的Highcharts树状图,如果我从一个图表中选择一个点,我还想向具有相同id/相同位置的第二个图表点发送一个select事件

进步: 我遵循这些解决同样问题的方法,只针对线图,然后采用了树图的提琴。您可以在下面找到它:

$(function () {
    var prevPid = 0;
    var chart = {
        plotOptions: {
            series: {
                allowPointSelect: true,
                point: {
                    'events': {
                        select: function () {
                            var pId = this.series.data.indexOf(this);
                            var chart1 = $('#container').highcharts();
                            var chart2 = $('#container2').highcharts();
                            chart1.series[0].data[pId].setState('select');
                            chart2.series[0].data[pId].setState('select');
                            chart2.series[0].data[prevPid].setState('');
                            prevPid = pId;
                        }
                    }
                }
            }
        },
        series: [{
            type: "treemap",
            data: [{
                name: 'A',
                value: 6,
                colorValue: 1
            }, {
                name: 'B',
                value: 6,
                colorValue: 2
            }, {
                name: 'C',
                value: 4,
                colorValue: 3
            }]
        }]
    };
    $('#container').highcharts(chart);
    $('#container2').highcharts(chart);
});

问题:但是未选择其他图表的对应点。有关于如何修复的建议吗?

Highcharts v5+ 使用
point.update()
,演示:

设置:

chart: {
  events: {
    load: function() {
      $.each(this.series, function(i, s) {
        $.each(s.data, function(j, p) {
          p.pointAttr = {
            select: {
              color: "red"
            }
          };
        });
      });
    }
  }
},
和行动:

    point: {
      'events': {
        click: function() {
          var pId = this.series.data.indexOf(this);
          var chart1 = $('#container').highcharts();
          var chart2 = $('#container2').highcharts();

          chart1.series[0].data[prevPid].update({
            color: chart1.series[0].color
          });
          chart2.series[0].data[prevPid].update({
            color: chart2.series[0].color
          });
          chart1.series[0].data[pId].update({
            color: chart1.series[0].data[pId].pointAttr.select.color
          });
          chart2.series[0].data[pId].update({
            color: chart2.series[0].data[pId].pointAttr.select.color
          });
          prevPid = pId;
        }
      }
    }
高图表

问题是
treemap
没有
状态。请选择
选项(API:),这样即使在强制
选择
-ed状态时,图表上也不会发生任何视觉变化。您可以手动添加该状态:


注意:您选择/取消选择点的逻辑缺失,无法检查当前单击的点是否已单击

一个小问题:当选择图1的A点,然后选择图2的B点时,A点在图1中保持选中状态。setState(“”)函数已启动,但没有任何效果。您是对的。为以前选择的点设置
selected
标志如何?请参阅:Fiddle在加载方法执行时抛出以下错误。未捕获类型错误:无法为Highcharts v5+设置未定义解决方案的属性“select”。谢谢你的信息!
    chart: {
        events: {
            load: function() {
                $.each(this.series, function(i, s) {
                   $.each(s.data, function(j, p) {
                        p.pointAttr.select = {
                            fill: "red"
                        }
                   });
                });
            }
        }
    },