2016-11-04 76 views
1

我想用highstock,但我似乎无法得到它的工作...我的代码:stockChart没有定义(...)

$(function() { 
    $.getJSON('https://www.highcharts.com/samples/data/jsonp.php?filename=aapl-v.json&callback=?', function (data) { 

     // create the chart 
     var options = { 
      chart: { 
       alignTicks: false, 
       renderTo: 'container' 
      }, 

      rangeSelector: { 
       selected: 1 
      }, 

      title: { 
       text: 'AAPL Stock Volume' 
      }, 

      series: [{ 
       type: 'column', 
       name: 'AAPL Stock Volume', 
       data: data, 
       dataGrouping: { 
        units: [[ 
         'week', // unit name 
         [1] // allowed multiples 
        ], [ 
         'month', 
         [1, 2, 3, 4, 6] 
        ]] 
       } 
      }] 
     }; 

    }); 
    var chart = new stockChart(options); 
}); 

的浏览器不会显示任何东西,如果我去看看错误;

stockChart没有定义(...)

我自己也尝试从这个JSFiddle的代码,但它也不能工作。所以我试图使用这些选项,但是这不起作用。有人可以帮我解决吗?

+0

var chart = Highcharts.stockChart(options);不工作? –

回答

1

你需要你的初始化脚本之前添加HighStock JavaScript库:

<script src="https://code.highcharts.com/stock/highstock.js"></script> 
<script src="https://code.highcharts.com/stock/modules/exporting.js"></script> 

另外,如小提琴给,你可以用它来初始化:

chart = Highcharts.stockChart('container', options); 
+0

嗨我已经尝试过,但仍然没有图表显示:-( –

0

使用Highcharts.stockChartnew Highcharts.StockChart

此外,您在收到数据之前创建一个新图表(get.json异步工作),并尝试访问在不同范围内定义的options

$(function() { 
$.getJSON('https://www.highcharts.com/samples/data/jsonp.php?filename=aapl-v.json&callback=?', function (data) { 

    // create the chart 
    var options = { 
     chart: { 
      alignTicks: false, 
      renderTo: 'container' 
     }, 

     rangeSelector: { 
      selected: 1 
     }, 

     title: { 
      text: 'AAPL Stock Volume' 
     }, 

     series: [{ 
      type: 'column', 
      name: 'AAPL Stock Volume', 
      data: data, 
      dataGrouping: { 
       units: [[ 
        'week', // unit name 
        [1] // allowed multiples 
       ], [ 
        'month', 
        [1, 2, 3, 4, 6] 
       ]] 
      } 
     }] 
    }; 
    var chart = Highcharts.stockChart(options); // alternatively new Highcharts.StockChart(options); 
}); 

}); 
+0

我已经试过这个,但仍然没有图表显示:-( –

+0

多次重新加载页面后,它开始工作,它显示一个图形,但没有数据... –

1

您正在使用关键字“new”将函数stockChart作为构造函数调用。你得到“未定义错误”的原因是因为在你的代码中,stockChart函数无处可寻!

要创建一个写

var stockChart = function(opt){ 
     this.someproperty = "hello there im a stockchart" 
    }; 

有了这个功能,你就可以“新”的stockChart

var my_stockchart = new stockChart(); 

现在你可以使用你的新成立的my_stockchart对象,并调用它的方法。在您的控制台中试用它。

my_stockchart.someproperty 

    returns => "hello there im a stockchart" 

现在,如果你想要快速和肮脏的答案,我想其他人让你覆盖。所以基本上,你要调用一个尚未在你的代码中定义的函数。希望这可以帮助。