HIghcharts,在Point.select事件中选择第二个Point

时间:2013-06-21 10:31:35

标签: javascript events select callback highcharts

$(function () {
  var chart = {
    plotOptions: {
      series: {
        point: {
          'events' : {
            select: function(){
              var pId = this.series.data.indexOf(this);

              var chart1 = $('#container').highcharts();
              var chart2 = $('#container2').highcharts();


        //These are the extra selects I want to happen
        //chart1.series[0].data[5].select(true,true);
        //chart2.series[0].data[pId].select();

            }
          }
        }
      }
    },
    series: [{
      data: [29.9, 71.5, 106.4,
             129.2, 144.0, 176.0,
             135.6, 148.5, 216.4,
             194.1, 95.6, 54.4]
    }] 
  };
  $('#container').highcharts(chart);
  $('#container2').highcharts(chart);

  var chart = $('#container').highcharts();

  i = 0;
  $('#button').click(function() {
    if (i == chart.series[0].data.length) 
    i = 0; 

    chart.series[0].data[i].select();
    i++;
  });


});

<击> http://jsfiddle.net/rphne/

http://jsfiddle.net/rphne/5/

你可以看到我在那里想要实现的目标。基本上,我想在选择事件发生后选择同一图表上的一个点,以及第二个图表上的一个点。

在上面的示例中,它应该选择图表1和图表2上的相同点,以及图表1选择自身的第二个点。

我认为只是做一个.Select(true,true)会累积,但是当在select事件中完成时会失败。我相信我正在寻找一种回调事件,所以在Select成功完成后,我可以做额外的选择。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

在按钮操作中,您只从一个图表中选择一个点,因为在第一个对象中使用chart.series[0].data[i].select();。只有您需要的是为第二个图表添加相同的操作。

http://jsfiddle.net/rphne/1/

编辑: 您还可以使用setState()函数来同步两个图表。 http://jsfiddle.net/rphne/6/