没有定义stockChart(…)

stockChart is not defined(…)

本文关键字:stockChart 定义      更新时间:2023-09-26

我想使用hilitock,但我似乎不能让它工作…我的代码:

$(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);
});

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

没有定义(…)

我也试过这个JSFiddle的代码,但它也不起作用。所以我试着使用选项,但这并不奏效。有人能帮我一下吗?

你需要在初始化脚本之前添加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);

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

创建一个write

    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"
现在,如果你想要一个快速而肮脏的答案,我想其他人已经告诉你了。基本上它归结为你调用的函数在你的代码中还没有定义。

使用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);
});
});