2016-11-04 80 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" 

現在,如果你想要快速和骯髒的答案,我想其他人讓你覆蓋。所以基本上,你要調用一個尚未在你的代碼中定義的函數。希望這可以幫助。