2013-06-21 42 views
0
$(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/ HIghcharts,在Point.select事件中選擇第二點

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

你可以看到我想要達到那裏。本質上,我想在選擇事件發生後選擇同一圖上的一個點,以及第二個圖上的一個點。

在上面的例子中,它應該選擇圖表1和圖表2上的同一點,以及圖表1自己選擇第二個點。

我想只是做一個.Select(真,真)會積累,但是,這在選擇事件內完成時失敗。我相信我正在尋找一種回調事件,這樣在選擇成功完成後,我可以做我的額外選擇。

有什麼建議嗎?

回答

1

在按鈕操作中,您只從一個圖表中選擇一個點,因爲在第一個對象中使用了chart.series[0].data[i].select();。只有你需要的是爲第二個圖表添加相同的動作。

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

編輯: 您還可以使用的setState()函數來sychronise兩個圖表。 http://jsfiddle.net/rphne/6/

+0

是的,在這個例子中,功能很容易放在.select按鈕中,但是我打算通過某個人單擊圖表來使用這個功能。 這就是爲什麼我一直試圖在事件內部發揮功能,因爲它是我能夠操縱事物的第一個端口。 – convenient

+0

http://jsfiddle.net/rphne/3/ – convenient

+0

@convenient請看看更新的例子 –