highcharts,没有jQuery的highstock

mom*_*omo 5 javascript charts highcharts highstock

我了解你可以使用:

$(element).highcharts("StockChart", {}) 获得该元素的图表.

但是,我想能够获得highchart物体的金币,以便我可以在之后操纵它,或者我想做:

new Highcharts.Chart({
    chart : {
      renderTo : 'container'
      type     : 'StockChart'
    }
    ...
  });
Run Code Online (Sandbox Code Playgroud)

首先:后者不适用于'StockChart'类型.我收到错误代码17,上面写着:

"请求的系列类型不存在"

其次:我更喜欢将renderTo选项设置为元素而不是id.通过使用id它强制我的元素也使用id,但是我可以有一个容器和一个容器subelement,它很难引用它.

现在,如果你在一个html页面上有很多图表,那么id就不太理想了.相反,我想使用实际的dom元素来传递.

通过使用$(element).highcharts("StockChart", {})我能够将几乎所有其他选项设置为全局选项,包括使用rangeSelector和开始工作.

但是,我仍然需要能够访问this,这在事件函数中可用,例如加载,所以我想我可以设置一个全局的,但这可能有点矫枉过正.

Paw*_*Fus 6

我在你的案例中看到三个问题:

1)要在创建图表时获取对象,您有两种方法:

2)错误#17:

"请求的系列类型不存在"

是由type : 'StockChart'.type保留为系列类型.正如@Raeen Hashemi所说,要创建Highstock,请使用不同的构造函数:new Highcharts.StockChart(options).

3)是的,您可以将对象传递给renderTo:http://jsfiddle.net/yvxwa6oq/

new Highcharts.StockChart({
    chart: {
        renderTo: document.getElementsByClassName("container")[0] 
    },

    series: [{
        name: 'USD to EUR',
        data: [10, 20]
    }]
});
Run Code Online (Sandbox Code Playgroud)

4)this- 老实说,我不确定为什么你需要访问this除事件处理程序之外的其他地方.而是使用Highcharts.charts[index]或存储变量,如chart$(element).highcharts()

  • 帕维尔,你就是男人!甚至我的妻子都这么说! (3认同)